anchor.diff:  {$endif}
   {$endif}
   
  -function PtrPosChar(const Pattern:ansichar;const Text:pansichar;TextLength:longint;Offset:longint=0):longint;
  +function PtrPosChar(const Pattern:ansichar;const Text:PAnsiChar;TextLength:longint;Offset:longint=0):longint;
   type pptruint=^ptruint;
   const MaskA=ptruint({$ifdef cpu64}$fefefefefefefeff{$else}$fefefeff{$endif}); // it is: 0-$01010101 / 0-$0101010101010101
         MaskB=ptruint({$ifdef cpu64}$8080808080808080{$else}$80808080{$endif});
  -var CurrentChar:pansichar;
  +var CurrentChar:PAnsiChar;
       CurrentChunk:pptruint;
       XorMask,XoredChunk,Size:ptruint;
   begin
  
positive.code: function TFLRE.UTF8MatchNext(const Input:TFLREUTF8String;var Captures:TFLRECaptures;const StartPosition:longint=1):boolean;
  var Counter:longint;
  begin
   result:=PtrMatchNext(pansichar(@Input[1]),length(Input),Captures,StartPosition-1);
   for Counter:=0 to length(Captures)-1 do begin
    if Captures[Counter].Length>0 then begin
     inc(Captures[Counter].Start);
  
negative.code:   if ((Condition and sfEmptyAllFlags)=0) or
       (((Condition and sfEmptyAllFlags) and not ThreadLocalStorageInstance.GetSatisfyFlags(CurrentPosition))=0) then begin
     NextIndex:=Condition shr sfIndexShift;
     State:=pointer(@PAnsiChar(Nodes)[StateSize*longint(NextIndex)]);
     NextMatchCondition:=State^.MatchCondition;
    end else begin
     State:=nil;
  