anchor.diff:          end;
          end;
         end else begin
  -       case ThreadLocalState.Input[OtherPosition] of
  -        #10,#13:begin
  +       case byte(ansichar(ThreadLocalState.Input[OtherPosition])) of
  +        $0a,$0d,$85:begin
            Instruction:=Instruction^.Next;
            continue;
           end;
  
positive.code:     NextMatchCondition,MatchCondition,Condition,NextIndex:longword;
      Input:pansichar;
   function Satisfy(Condition:longword):boolean;
   var Flags:longword;
   begin
    Flags:=0;
    if CurrentPosition<=0 then begin
     Flags:=Flags or (sfEmptyBeginText or sfEmptyBeginLine);
    end else if Input[CurrentPosition-1] in [#10,#13] then begin
     Flags:=Flags or sfEmptyBeginLine;
    end;
    if CurrentPosition>InputLength then begin
     Flags:=Flags or (sfEmptyEndText or sfEmptyEndLine);
    end else if (CurrentPosition<InputLength) and (Input[CurrentPosition] in [#10,#13]) then begin
     Flags:=Flags or sfEmptyEndLine;
    end;
    if InputLength>0 then begin
     if CurrentPosition=0 then begin
      if IsWordChar(0) then begin
       Flags:=Flags or sfEmptyWordBoundary;
      end;
     end else if CurrentPosition>=InputLength then begin
      if IsWordChar(CurrentPosition-1) then begin
       Flags:=Flags or sfEmptyWordBoundary;
      end;
     end else if IsWordChar(CurrentPosition-1)<>IsWordChar(CurrentPosition) then begin
      Flags:=Flags or sfEmptyWordBoundary;
     end;
    end;
    if (Flags and sfEmptyWordBoundary)=0 then begin
     Flags:=Flags or sfEmptyNonWordBoundary;
    end;
    result:=((Condition and sfEmptyAllFlags) and not Flags)=0;
   end;
  begin
   TwoCountOfCaptures:=CountParens*2;
  
negative.code:        procedure CompilePrefixCharClasses;
         procedure CompileByteMapForOnePassNFAAndDFA;
         procedure CompileOnePassNFA;
         function IsWordChar(const CharValue:longword):boolean; {$ifdef caninline}inline;{$endif}
         function NewSubMatches(const Count:longint;const BitState:longword):PFLRESubMatches; {$ifdef caninline}inline;{$endif}
         procedure DecRef(const SubMatches:PFLRESubMatches); {$ifdef caninline}inline;{$endif}
         function IncRef(const SubMatches:PFLRESubMatches):PFLRESubMatches; {$ifdef caninline}inline;{$endif}
         function Update(const SubMatches:PFLRESubMatches;const Index,Position:longint):PFLRESubMatches; {$ifdef caninline}inline;{$endif}
         function NewThread(const Instruction:PFLREInstruction;const SubMatches:PFLRESubMatches):TFLREThread; {$ifdef caninline}inline;{$endif}
         procedure AddThread(const ThreadLocalState:TFLREThreadLocalState;const ThreadList:PFLREThreadList;Instruction:PFLREInstruction;SubMatches:PFLRESubMatches;const Position:longint);
         function DFACacheState(const State:PFLREDFAState):PFLREDFAState; {$ifdef caninline}inline;{$endif}
         procedure DFAAddInstructionThread(const State:PFLREDFAState;Instruction:PFLREInstruction);
  