anchor.diff:  function TFLREBitStateNFA.SearchMatch(var Captures:TFLRECaptures;const StartPosition,UntilExcludingPosition:TFLREInt32;const UnanchoredStart:boolean):TFLREInt32;
   var LocalInputLength,BasePosition,Len:TFLREInt32;
       LocalInput:PFLRERawByteChar;
  - function ShouldVisit(const Instruction:PFLREInstruction;const Position:TFLREInt32):boolean; {$ifdef caninline}inline;{$endif}
  + function ShouldVisit(const Instruction:PFLREInstruction;const Position:TFLREInt32):boolean; {$ifdef fpc}{$ifdef caninline}inline;{$endif}{$endif}
    var i:TFLREUInt32;
    begin
  -  i:=(TFLREPtrUInt(Instruction^.IDandOpcode shr 8)*TFLREUInt32(Len+1))+TFLREUInt32(TFLREInt32(Position-BasePosition));
  +  i:=(TFLREPtrUInt(Instruction^.IDandOpcode shr 8)*TFLREUInt32(TFLREUInt32(Len)+1))+TFLREUInt32(TFLREInt32(Position-BasePosition));
     result:=(Visited[i shr 5] and (1 shl (i and 31)))=0;
     if result then begin
      Visited[i shr 5]:=Visited[i shr 5] or (1 shl (i and 31));
  
positive.code:  result^.SubMatchesBitmap:=SubMatchesBitmap;
  end;
  
  function TFLREParallelNFA.StateAcquire(const State:PFLREParallelNFAState):PFLREParallelNFAState; {$ifdef caninline}inline;{$endif}
  begin
   inc(State^.ReferenceCounter);
   result:=State;
  end;
  
  procedure TFLREParallelNFA.StateRelease(const State:PFLREParallelNFAState); {$ifdef caninline}inline;{$endif}
  begin
   dec(State^.ReferenceCounter);
   if State^.ReferenceCounter=0 then begin
  
negative.code:  inherited Destroy;
  end;
  
  function TFLREDFA.CacheState(const State:PFLREDFAState):PFLREDFAState;
  begin
  
   // Is it already cached?
  