anchor.diff:     exit;
     end;
    end else begin
  -  if fifBitStateNFAReady in InternalFlags then begin
  +  if (fifBitStateNFAReady in InternalFlags) and ((UntilExcludingPosition-StartPosition)<=MaxBitStateNFATextSize) then begin
      case ThreadLocalStorageInstance.BitStateNFA.SearchMatch(Captures,StartPosition,UntilExcludingPosition,UnanchoredStart) of
       BitStateNFAFail:begin
        result:=false;
  
positive.code:  end;
  
   // Then try DFA
   if fifDFAReady in InternalFlags then begin
    ThreadLocalStorageInstance.DFA.IsUnanchored:=UnanchoredStart;
    case ThreadLocalStorageInstance.DFA.SearchMatch(StartPosition,UntilExcludingPosition,MatchEnd,UnanchoredStart) of
     DFAMatch:begin
  
negative.code:        CountJobs:TFLREInt32;
         MaxJob:TFLREInt32;
         WorkSubMatches:TFLREBitStateNFASubMatches;
         MatchSubMatches:TFLREBitStateNFASubMatches;       
         constructor Create(const AThreadLocalStorageInstance:TFLREThreadLocalStorageInstance);
         destructor Destroy; override;
         function SearchMatch(var Captures:TFLRECaptures;const StartPosition,UntilExcludingPosition:TFLREInt32;const UnanchoredStart:boolean):TFLREInt32;
  