anchor.diff:     if ((MatchCondition and sfCapMask)<>0) and (TwoCountOfCaptures>0) then begin
       for Counter:=0 to TwoCountOfCaptures-1 do begin
        if (MatchCondition and ((1 shl sfCapShift) shl Counter))<>0 then begin
  -      OnePassNFAWorkCaptures[Counter]:=CurrentPosition;
  +      ThreadLocalStorage.OnePassNFAWorkCaptures[Counter]:=CurrentPosition;
        end;
       end;
      end;
      for Counter:=0 to TwoCountOfCaptures-1 do begin
  -    OnePassNFAMatchCaptures[Counter]:=OnePassNFAWorkCaptures[Counter];
  +    ThreadLocalStorage.OnePassNFAMatchCaptures[Counter]:=ThreadLocalStorage.OnePassNFAWorkCaptures[Counter];
      end;
      result:=true;
     end;
  
positive.code:  OnePassNFANodesCount:=0;
   OnePassNFAStart:=nil;
   OnePassNFAStateSize:=0;
   OnePassNFAWorkCaptures:=nil;
   OnePassNFAMatchCaptures:=nil;
   OnePassNFACharClassActions:=nil;
   OnePassNFAReady:=false;
  
  
negative.code:  OnePassNFANodesCount:=0;
   OnePassNFAStart:=nil;
   OnePassNFAStateSize:=0;
  
   while assigned(OnePassNFACharClassActions) do begin
    NextCharClassAction:=OnePassNFACharClassActions^.AllNext;
  