anchor.diff:   FreeParallelNFAStates:=nil;
    AllParallelNFAStates:=TList.Create;
   
  - OnePassNFAWorkCaptures:=nil;
  - OnePassNFAMatchCaptures:=nil;
  + OnePassNFAWorkSubMatches:=nil;
  + OnePassNFAMatchSubMatches:=nil;
   
    if Instance.OnePassNFAReady then begin
  -  SetLength(OnePassNFAWorkCaptures,Instance.CountSubMatches);
  -  SetLength(OnePassNFAMatchCaptures,Instance.CountSubMatches);
  +  SetLength(OnePassNFAWorkSubMatches,Instance.CountSubMatches);
  +  SetLength(OnePassNFAMatchSubMatches,Instance.CountSubMatches);
    end;
   
    BitStateNFACountVisited:=0;
    BitStateNFAJobs:=nil;
    BitStateNFACountJobs:=0;
    BitStateNFAMaxJob:=0;
  - BitStateNFAWorkCaptures:=nil;
  - BitStateNFAMatchCaptures:=nil;
  + BitStateNFAWorkSubMatches:=nil;
  + BitStateNFAMatchSubMatches:=nil;
   
    if Instance.BitStateNFAReady then begin
  -  SetLength(BitStateNFAWorkCaptures,Instance.CountSubMatches);
  -  SetLength(BitStateNFAMatchCaptures,Instance.CountSubMatches);
  +  SetLength(BitStateNFAWorkSubMatches,Instance.CountSubMatches);
  +  SetLength(BitStateNFAMatchSubMatches,Instance.CountSubMatches);
    end;
   
    DFAStackInstructions:=nil;
  
positive.code:  if result then begin
    SetLength(Captures,Instance.CountCaptures);
    for Counter:=0 to Instance.CountCaptures-1 do begin
     Captures[Counter].Start:=OnePassNFAMatchCaptures[Counter*2];
     Captures[Counter].Length:=OnePassNFAMatchCaptures[(Counter*2)+1]-OnePassNFAMatchCaptures[Counter*2];
    end;
   end;
  
  
negative.code:   if (Condition and sfCapMask)<>0 then begin
     for Counter:=0 to TwoCountOfCaptures-1 do begin
      if (Condition and ((1 shl sfCapShift) shl Counter))<>0 then begin
       OnePassNFAWorkSubMatches[Counter]:=CurrentPosition;
      end;
     end;
    end;
  