Fields
- kind: Node_Kind
- literal: string
- LITERAL: the bytes to match
- ranges: [..] Char_Range
- CLASS: sorted and merged; code points, or bytes when
bytes - bytes: bool
- look: Look
- min: int
- REPEAT: max < 0 means no upper bound
- max: int
- greedy: bool
- index: int
- CAPTURE: the group number, from 1
- name: string
- CAPTURE: "" for an unnamed group
- children: [..] *Node
- REPEAT and CAPTURE have exactly one