anchor.diff:       end;
       end;
       opCHAR:begin
  -     if (CurrentChar<>$ffffffff) and (ansichar(byte(CurrentChar)) in PFLRECharClass(pointer(ptruint(Instruction^.Value)))^) then begin
  +     if (CurrentChar<>256) and (ansichar(byte(CurrentChar)) in PFLRECharClass(pointer(ptruint(Instruction^.Value)))^) then begin
         AddToWorkQueue(NewWorkQueue,Instruction^.Next,Flags);
        end;
       end;
       opANY:begin
  -     if CurrentChar<>$ffffffff then begin
  +     if CurrentChar<>256 then begin
         AddToWorkQueue(NewWorkQueue,Instruction^.Next,Flags);
        end;
       end;
       opMATCH:begin
  -     if not (Instance.EndingAnchor and (CurrentChar<>$ffffffff)) then begin
  +     if not (Instance.EndingAnchor and (CurrentChar<>256)) then begin
         IsMatch:=true;
         if MatchMode=mmFirstMatch then begin
          exit;
  
positive.code:     if (State^.Flags and sfDFAMatchWins)<>0 then begin
       MatchEnd:=Position-1;
       result:=DFAMatch;
       if MatchMode=mmMultiMatch then begin
        for Index:=0 to State^.CountInstructions do begin
         Instruction:=State^.Instructions[Index];
         if assigned(Instruction) and ((Instruction^.IDandOpcode and $ff)=opMATCH) then begin
          if (Instruction.Value>=0) and (Instruction.Value<Instance.CountMultiSubMatches) then begin
  
negative.code: begin
   result:=false;
   ThreadLocalStorageInstance.DFA.IsUnanchored:=UnanchoredStart;
  (**)
   case ThreadLocalStorageInstance.DFA.SearchMatch(StartPosition,UntilExcludingPosition,MatchEnd,UnanchoredStart) of
    DFAMatch:begin
     if UnanchoredStart then begin
  