anchor.diff:         Generation:int64;
          InstructionGenerations:TFLREInstructionGenerations;
   
  -       FreeSubMatches:PFLREParallelNFAState;
  -       AllSubMatches:TList;
  +       FreeParallelNFAStates:PFLREParallelNFAState;
  +       AllParallelNFAStates:TList;
   
          OnePassNFAWorkCaptures:TFLREOnePassNFACaptures;
          OnePassNFAMatchCaptures:TFLREOnePassNFACaptures;
  
positive.code: 
  function TFLREThreadLocalStorage.ParallelNFAStateAllocate(const Count:longint;const BitState:longword):PFLREParallelNFAState; {$ifdef caninline}inline;{$endif}
  begin
   if assigned(FreeSubMatches) then begin
    result:=FreeSubMatches;
    FreeSubMatches:=result^.Next;
   end else begin
    GetMem(result,SizeOf(TFLREParallelNFAState));
    FillChar(result^,SizeOf(TFLREParallelNFAState),#0);
    SetLength(result^.SubMatches,Instance.CountSubMatches);
    AllSubMatches.Add(result);
   end;
   result^.ReferenceCounter:=1;
   result^.Count:=Count;
  
negative.code: var State:PFLREParallelNFAState;
  begin
  
   while assigned(FreeParallelNFAStates) do begin
    State:=FreeParallelNFAStates;
    FreeParallelNFAStates:=FreeParallelNFAStates^.Next;
    SetLength(State^.SubMatches,0);
    Finalize(State^);
    FreeMem(State);
   end;
   FreeParallelNFAStates:=nil;
  
   FreeAndNil(AllParallelNFAStates);
  
   SetLength(OnePassNFAWorkCaptures,0);
   SetLength(OnePassNFAMatchCaptures,0);
  