anchor.diff:     jmp SkipProcessNewStartState
    end;
    ProcessNewStartState:
  -   Offset:=Instance.SearchNextPossibleStartForDFA(@LocalInput[Position],UntilExcludingPosition-Position);
  -   if Offset<0 then begin
  -    exit;
  -   end;
  -   inc(Position,Offset);
  -   State:=InitializeStartState(Position,UnanchoredStart);
  -   if assigned(State) and ((State^.Flags and sfDFAMatchWins)<>0) then begin
  -    MatchEnd:=Position-1;
  -    result:=DFAMatch;
  -   end;
  +  if Position<UntilExcludingPosition then begin
  +   TemporaryTestState:=State^.NextStates[LocalByteMap^[byte(ansichar(LocalInput[Position]))]];
  +   if assigned(TemporaryTestState) and ((TemporaryTestState^.Flags and sfDFAStart)<>0) then begin
  +    Offset:=Instance.SearchNextPossibleStartForDFA(@LocalInput[Position],UntilExcludingPosition-Position);
  +    if Offset<0 then begin
  +     exit;
  +    end;
  +    inc(Position,Offset);
  +    State:=InitializeStartState(Position,UnanchoredStart);
  +    if assigned(State) and ((State^.Flags and sfDFAMatchWins)<>0) then begin
  +     MatchEnd:=Position-1;
  +     result:=DFAMatch;
  +    end;
  +   end;
  +  end;
     goto NewStartState;
    SkipProcessNewStartState:
   {$else}
  
positive.code: end;
  {$else}
  var Position,Offset:longint;
      State,LastState:PFLREDFAState;
      LocalInput:pansichar;
      LocalByteMap:PFLREByteMap;
  begin
  
negative.code:     result:=DFAMatch;
     end;
     if (State^.Flags and sfDFAStart)<>0 then begin
      if Position<UntilExcludingPosition then begin
       TemporaryTestState:=State^.NextStates[LocalByteMap[byte(ansichar(LocalInput[Position]))]];
       if assigned(TemporaryTestState) and ((TemporaryTestState^.Flags and sfDFAStart)<>0) then begin
        Offset:=Instance.SearchNextPossibleStartForDFA(@LocalInput[Position],UntilExcludingPosition-Position);
        if Offset<0 then begin
         exit;
        end;
        inc(Position,Offset);
       end;
      end;
     end;
    end;
   end;
  