in Sources/_MatchingEngine/Regex/Parse/LexicalAnalysis.swift [640:680]
mutating func lexExplicitPCRE2GroupStart() -> AST.Group.Kind? {
tryEating { src in
guard src.tryEat(sequence: "(*") else { return nil }
if src.tryEat(sequence: "atomic:") {
return .atomicNonCapturing
}
if src.tryEat(sequence: "pla:") ||
src.tryEat(sequence: "positive_lookahead:") {
return .lookahead
}
if src.tryEat(sequence: "nla:") ||
src.tryEat(sequence: "negative_lookahead:") {
return .negativeLookahead
}
if src.tryEat(sequence: "plb:") ||
src.tryEat(sequence: "positive_lookbehind:") {
return .lookbehind
}
if src.tryEat(sequence: "nlb:") ||
src.tryEat(sequence: "negative_lookbehind:") {
return .negativeLookbehind
}
if src.tryEat(sequence: "napla:") ||
src.tryEat(sequence: "non_atomic_positive_lookahead:") {
return .nonAtomicLookahead
}
if src.tryEat(sequence: "naplb:") ||
src.tryEat(sequence: "non_atomic_positive_lookbehind:") {
return .nonAtomicLookbehind
}
if src.tryEat(sequence: "sr:") || src.tryEat(sequence: "script_run:") {
return .scriptRun
}
if src.tryEat(sequence: "asr:") ||
src.tryEat(sequence: "atomic_script_run:") {
return .atomicScriptRun
}
return nil
}
}