anchor.diff:      opMATCH:begin
        if rfLONGEST in Instance.Flags then begin
         if not assigned(BestState) then begin
  -       BestState:=ParallelNFAStateAllocate(Instance.CountSubMatches,State^.SubMatchesBitMask);
  -      end;
  -      if State^.SubMatchesBitMask<>0 then begin
  +       BestState:=ParallelNFAStateAllocate(Instance.CountSubMatches,State^.SubMatchesBitmap,State^.UsedCheckBitmapSize);
  +      end;
  +      if State^.SubMatchesBitmap<>0 then begin
          if LastPosition<CurrentPosition then begin
           LastPosition:=CurrentPosition;
  -        BestState^.SubMatchesBitMask:=State^.SubMatchesBitMask;
  +        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:     Instruction:PFLREInstruction;
      CurrentChar:ansichar;
      Capture:PFLRECapture;
      SubMatchesBitMask:longword;
      LocalInput:pansichar;
  begin
   result:=false;
  
negative.code:  CurrentThreadList^.Count:=0;
   NewThreadList^.Count:=0;
  
   State:=ParallelNFAStateAllocate(Instance.CountSubMatches,0,0);
  
   inc(Generation);
   if UnanchoredStart then begin
  