mutating func lexExplicitPCRE2GroupStart()

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
    }
  }