anchor.diff:     end;
     end;
    end;
  +{$endif}
   
    Position:=UntilExcludingPosition-1;
   
  
positive.code: 
  function TFLREDFA.SearchMatchFull(const StartPosition,UntilExcludingPosition:longint;out MatchEnd:longint;const UnanchoredStart:longbool):longint;
  {$ifdef cpu386}
  label ProcessNewStartState,SkipProcessNewStartState,NewStartState;
  {$endif}
  var Position,LocalInputLength,Index,Offset:longint;
      State,LastState:PFLREDFAState;
  
negative.code:   result:=DFAMatch;
   end;
  
  {$ifdef cpu386}
   asm
  
    pushad
  
    mov ecx,dword ptr StartPosition
    sub ecx,dword ptr UntilExcludingPosition
    js @Done
  
    mov esi,dword ptr LocalInput
    add esi,dword ptr StartPosition
  
    mov edx,dword ptr LocalByteMap
  
    mov edi,dword ptr State
  
     @Loop:
  
      movzx eax,byte ptr [esi]
      dec esi
  
      mov ebx,dword ptr [edx+eax*4]
      mov ebx,dword ptr [edi+TFLREDFAState.NextStates+ebx*4]
      xchg edi,ebx
      test edi,edi
      jz @HaveNoNextState
      @HaveNextState:
  
      mov ebx,dword ptr [edi+TFLREDFAState.Flags]
      test ebx,sfDFAMatchWins or sfDFADead
      jnz @CheckFlags
  
     @BackToLoop:
     dec ecx
     jns @Loop
     jmp @Done
  
     @CheckFlags:
      test ebx,sfDFADead
      jz @IsNotDFADead
       cmp dword ptr result,DFAMatch
       jz @DoneMatch
        mov dword ptr result,DFAFail
       @DoneMatch:
        popad
        jmp ExitFunction
      @IsNotDFADead:
      test ebx,sfDFAMatchWins
      jz @IsNotMatchWin
       lea eax,[esi+2]
       sub eax,dword ptr LocalInput
       mov ebx,dword ptr MatchEnd
       mov dword ptr [ebx],eax
       mov dword ptr result,DFAMatch
      @IsNotMatchWin:
      jmp @BackToLoop
  
     @HaveNoNextState:
      push ecx
      push edx
       push eax // Char
       lea ecx,[esi+1]
       sub ecx,dword ptr LocalInput
       mov eax,self
       mov edx,ebx // State
       call RunStateOnByte
      pop edx
      pop ecx
      mov edi,eax
      test edi,edi
      jnz @HaveNextState
  
      mov dword ptr result,DFAError
      popad
      jmp ExitFunction
  
     @Done:
  
     mov dword ptr State,edi
  
    popad
  
   end;
  {$else}
   for Position:=StartPosition downto UntilExcludingPosition do begin
    CurrentChar:=byte(ansichar(LocalInput[Position]));
    LastState:=State;
  