anchor.diff:                  yield Char.ToLowerInvariant(c)
                   yield Char.ToUpperInvariant(c)
           } |> set
  +
  +    /// Returns whether the given `Regex` contains a `Star` node.
  +    let rec isVariableLength =
  +        function
  +        | Regex.Concat xs
  +        | Regex.Alt xs -> List.exists isVariableLength xs
  +        | Regex.Star _ -> true
  +        | Regex.Chars _ -> false
   
       let createRegexBuildSingle regex acceptSymbol =
           let rec impl regex =
  
positive.code:     member x.AcceptSymbol =
          match x with
          | Chars _ -> None
          | End(_, accSym) -> Some accSym
  
  type internal ConcatFirstPos = Lazy<int Set> list
  
  
negative.code: [<RequireQualifiedAccess>]
  type internal RegexLeaf =
      | Chars of index: int * chars: char Set
      | End of index: int * priority: int *  acceptSymbol: DFASymbol
  with
      member x.Index =
          match x with
          | Chars(idx, _) | End(idx, _, _) -> idx
      member x.Characters =
          match x with
          | Chars(_, chars) -> chars
  