anchor.diff:       continue;
       end;
       opSPLIT:begin
  -     AddThread(ThreadList,Instruction^.Next,SubMatchesUse(SubMatches),Position);
  +     ParallelNFAAddThread(ThreadList,Instruction^.Next,SubMatchesUse(SubMatches),Position);
        Instruction:=Instruction^.OtherNext;
        continue;
       end;
  
positive.code:        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);
  
         function DFACacheState(const State:PFLREDFAState):PFLREDFAState; {$ifdef caninline}inline;{$endif}
         procedure DFAAddInstructionThread(const State:PFLREDFAState;Instruction:PFLREInstruction);
  
negative.code:      if (CurrentPosition>=InputLength) or (byte(ansichar(CurrentChar))<>Instruction^.Value) then begin
        ThreadLocalStorage.SubMatchesRelease(SubMatches);
       end else begin
        ThreadLocalStorage.ParallelNFAAddThread(NewThreadList,Instruction^.Next,SubMatches,CurrentPosition+1);
       end;
      end;
      opCHAR:begin
       if (CurrentPosition>=InputLength) or not (CurrentChar in PFLRECharClass(pointer(ptruint(Instruction^.Value)))^) then begin
        ThreadLocalStorage.SubMatchesRelease(SubMatches);
       end else begin
        ThreadLocalStorage.ParallelNFAAddThread(NewThreadList,Instruction^.Next,SubMatches,CurrentPosition+1);
       end;
      end;
      opANY:begin
       if CurrentPosition>=InputLength then begin
        ThreadLocalStorage.SubMatchesRelease(SubMatches);
       end else begin
        ThreadLocalStorage.ParallelNFAAddThread(NewThreadList,Instruction^.Next,SubMatches,CurrentPosition+1);
       end;
      end;
      opMATCH:begin
  