anchor.diff:        end;
        end;
        opCHAR:begin
  -      if (CurrentChar>=0) and (ansichar(byte(CurrentChar)) in PFLRECharClass(pointer(ptruint(Instruction^.Value)))^) then begin
  +      if (CurrentChar>=0) and (TFLRERawByteChar(byte(CurrentChar)) in PFLRECharClass(pointer(ptruint(Instruction^.Value)))^) then begin
          AddThread(NewThreadList,Instruction^.Next,State,CurrentPosition+1);
         end else begin
          StateRelease(State);
  
positive.code: 
     inc(Generation);
     GetMem(DFAState,StateSize);
     FillChar(DFAState^,StateSize,AnsiChar(#0));
     FastAddInstructionThread(DFAState,Instance.AnchoredStartInstruction);
     StateCache.Add(DFAState);
     inc(CountStatesCached);
  
negative.code:  end;
  {$else}
   for Position:=StartPosition downto UntilExcludingPosition do begin
    CurrentChar:=byte(TFLRERawByteChar(LocalInput[Position]));
    LastState:=State;
    State:=State^.NextStates[LocalByteMap^[CurrentChar]];
    if not assigned(State) then begin
  