Linear time NFA findAll
Types
RegexMatches2 = object a, b: Submatches m: Matches c: Capts3 look: Lookaround
Procs
func dummyMatch(ms: var RegexMatches2; i: int) {....raises: [], tags: [].}
- hack to support split last value. we need to add the end boundary if it has not matched the end (no match implies this too)
func fillMatchImpl(m: var RegexMatch2; mi: MatchItemIdx; ms: RegexMatches2; regex: Regex) {....raises: [], tags: [].}
func findSomeImpl(text: string; regex: Regex; ms: var RegexMatches2; start: Natural = 0; flags: MatchFlags = {}): int {....raises: [], tags: [RootEffect].}
func findSomeOptImpl(text: string; regex: Regex; ms: var RegexMatches2; start: Natural; flags: MatchFlags = {}): int {....raises: [], tags: [RootEffect].}
Iterators
iterator bounds(ms: RegexMatches2): Slice[int] {.inline, ...raises: [], tags: [].}
iterator items(ms: RegexMatches2): MatchItemIdx {.inline, ...raises: [], tags: [].}