anchor.diff:         function SubMatchesUse(const SubMatches:PFLRESubMatches):PFLRESubMatches; {$ifdef caninline}inline;{$endif}
          function SubMatchesUpdate(const SubMatches:PFLRESubMatches;const Index,Position:longint):PFLRESubMatches; {$ifdef caninline}inline;{$endif}
   
  -       function NewThread(const Instruction:PFLREInstruction;const SubMatches:PFLRESubMatches):TFLREThread; {$ifdef caninline}inline;{$endif}
  -       procedure AddThread(const ThreadList:PFLREThreadList;Instruction:PFLREInstruction;SubMatches:PFLRESubMatches;const Position:longint);
  +       procedure ParallelNFAAddThread(const ThreadList:PFLREThreadList;Instruction:PFLREInstruction;SubMatches:PFLRESubMatches;const Position:longint);
   
          function DFACacheState(const State:PFLREDFAState):PFLREDFAState; {$ifdef caninline}inline;{$endif}
          procedure DFAAddInstructionThread(const State:PFLREDFAState;Instruction:PFLREInstruction);
  
positive.code:      continue;
      end;
      opSPLIT:begin
       AddThread(ThreadList,Instruction^.Next,SubMatchesUse(SubMatches),Position);
       Instruction:=Instruction^.OtherNext;
       continue;
      end;
  
negative.code: 
   inc(ThreadLocalStorage.Generation);
   if UnanchoredStart then begin
    ThreadLocalStorage.ParallelNFAAddThread(CurrentThreadList,UnanchoredStartInstruction,SubMatches,StartPosition);
   end else begin
    ThreadLocalStorage.ParallelNFAAddThread(CurrentThreadList,AnchoredStartInstruction,SubMatches,StartPosition);
   end;
  
   Matched:=nil;
  