anchor.diff:      end;
      end;
      if OnePassNFAReady and not UnanchoredStart then begin
  -    result:=SearchMatchOnePassNFA(ThreadLocalStorage,Captures,StartPosition,UntilExcludingPosition);
  +    result:=ThreadLocalStorage.SearchMatchOnePassNFA(Captures,StartPosition,UntilExcludingPosition);
      end else begin
       if BitStateNFAReady then begin
  -     case SearchMatchBitStateNFA(ThreadLocalStorage,Captures,StartPosition,UntilExcludingPosition,UnanchoredStart) of
  +     case ThreadLocalStorage.SearchMatchBitStateNFA(Captures,StartPosition,UntilExcludingPosition,UnanchoredStart) of
         BitStateNFAFail:begin
          result:=false;
          break;
  
positive.code:   ThreadLocalStorage.Input:=AInput;
    ThreadLocalStorage.InputLength:=AInputLength;
    repeat
     case SearchMatchDFA(ThreadLocalStorage,StartPosition,UntilExcludingPosition,MatchEnd,UnanchoredStart) of
      DFAMatch:begin
       if UnanchoredStart then begin
        // For unanchored searchs, we must do also a "backward" DFA search
        case SearchMatchReversedDFA(ThreadLocalStorage,MatchEnd,StartPosition,MatchBegin) of
         DFAMatch:begin
          if MatchBegin<StartPosition then begin
           MatchBegin:=StartPosition;
  
negative.code:  OnePassNFACharClassActions:=nil;
   OnePassNFAReady:=false;
  
   BitStateNFAReady:=false;
  
   DFANeedVerification:=false;
  