anchor.diff:   end;
   end;
   
  -function TFLRE.SearchMatchReversedDFA(const StartPosition,UntilIncludingPosition:longint;out MatchBegin:longint):longint;
  -var Position:longint;
  +function TFLRE.SearchMatchReversedDFA(const ThreadLocalState:TFLREThreadLocalState;const StartPosition,UntilIncludingPosition:longint;out MatchBegin:longint):longint;
  +var InputLength,Position:longint;
       State,LastState:PFLREDFAState;
  +    Input:pansichar;
   begin
    result:=DFAFail;
  + Input:=ThreadLocalState.Input;
  + InputLength:=ThreadLocalState.InputLength;
    State:=DFAReversedStartState;
    for Position:=StartPosition downto UntilIncludingPosition do begin
     LastState:=State;
  
positive.code: 
  end;
  
  function TFLRE.SearchMatchParallelNFA(var Captures:TFLRECaptures;const StartPosition,UntilExcludingPosition:longint;const UnanchoredStart:boolean):boolean;
  var CurrentPosition,Counter,ThreadIndex,CurrentLength,LastPosition:longint;
      CurrentThreadList,NewThreadList,TemporaryThreadList:PFLREThreadList;
      SubMatches,Matched,BestSubMatches:PFLRESubMatches;
      CurrentThread:PFLREThread;
  
negative.code:              i:=j;
              end else begin
               if (e>=0) and (e<length(Captures)) then begin
                result:=result+PtrCopy(PAnsiChar(Input),Captures[e].Start,Captures[e].Length);
               end;
              end;
             end;
  