anchor.diff:      opMATCH:begin
        if rfLONGEST in Instance.Flags then begin
         if not assigned(BestState) then begin
  -       BestState:=ParallelNFAStateAllocate(Instance.CountSubMatches,State^.SubMatchesBitmap,State^.UsedCheckBitmapSize);
  +       BestState:=ParallelNFAStateAllocate(Instance.CountSubMatches,State^.SubMatchesBitmap);
         end;
         if State^.SubMatchesBitmap<>0 then begin
          if LastPosition<CurrentPosition then begin
           LastPosition:=CurrentPosition;
           BestState^.SubMatchesBitmap:=State^.SubMatchesBitmap;
           Move(State^.SubMatches[0],BestState^.SubMatches[0],State^.Count*SizeOf(TFLREParallelNFAStateItem));
  -        for Counter:=0 to longint(longword(longword(State^.UsedCheckBitmapSize+31) shr 5))-1 do begin
  -         BestState^.CheckBitmap[Counter]:=State^.CheckBitmap[Counter];
  -        end;
          end;
         end;
        end else begin
  
positive.code:  end;
  end;
  
  function TFLREThreadLocalStorageInstance.ParallelNFAStateAllocate(const Count:longint;const SubMatchesBitmap,UsedCheckBitmapSize:longword):PFLREParallelNFAState; {$ifdef caninline}inline;{$endif}
  begin
   if assigned(FreeParallelNFAStates) then begin
    result:=FreeParallelNFAStates;
  
negative.code: 
       TFLREParallelNFAStateItems=array of TFLREParallelNFAStateItem;
  
       PFLREParallelNFAState=^TFLREParallelNFAState;
       TFLREParallelNFAState=record
        Next:PFLREParallelNFAState;
        ReferenceCounter:longint;
        Count:longint;
        SubMatchesBitmap:longword;
        SubMatches:TFLREParallelNFAStateItems;
       end;
  
       PFLREThread=^TFLREThread;
  