anchor.diff:    Flags:=Flags or sfDFALastWord;
    end;
   
  + // Convert and cache it
    result:=WorkQueueToCachedState(Queues[0],Flags);
   
    // Connect the last state to the new state with the current char
  - State.NextStates[Instance.ByteMap[byte(ansichar(CurrentChar))]]:=result;
  + State.NextStates[Instance.ByteMap[CurrentChar]]:=result;
    
   end;
   
   function TFLREDFA.SearchMatchFull(const StartPosition,UntilExcludingPosition:longint;out MatchEnd:longint;const UnanchoredStart:boolean):longint;
  -var Position,Start,PreviousPosition:longint;
  +var Position,Start,PreviousPosition,LocalInputLength:longint;
       State,LastState:PFLREDFAState;
       StartState:PPFLREDFAState;
       StartInstruction:PFLREInstruction;
  
positive.code:     exit;
     end;
     if (State^.Flags and sfDFAMatchWins)<>0 then begin
      MatchEnd:=Position;
      result:=DFAMatch;
     end;
    end;
  
negative.code:        InstructionGenerations:TFLREInstructionGenerations;
         StackInstructions:TPFLREInstructions;
         StateCache:TFLREDFAStateHashMap;
         LocalByteMap:array[0..256] of longword;
         DefaultStates:array[0..3{dskFastReversed}] of PFLREDFAState;
         StartStates:array[0..4*3{sskMax}] of PFLREDFAState;
         TemporaryState:TFLREDFAState;
  