anchor.diff:        continue;
        end;
        opZEROWIDTH:begin
  -      if ((longword(Instruction^.Value) and sfEmptyAllFlags) and not GetSatisfyFlags(Position))=0 then begin
  +      if ParallelNFASatisfyFlags=$ffffffff then begin
  +       ParallelNFASatisfyFlags:=GetSatisfyFlags(Position);
  +      end;
  +      if ((longword(Instruction^.Value) and sfEmptyAllFlags) and not ParallelNFASatisfyFlags)=0 then begin
          Instruction:=Instruction^.Next;
          continue;
         end else begin
  
positive.code:        InputLength:longint;
  
         SearchLongest:longbool;
  
         ParallelNFAThreadLists:TFLREParallelNFAThreadLists;
  
  
negative.code:    CurrentChar:=-1;
    end;
    inc(ParallelNFAGeneration);
    ParallelNFASatisfyFlags:=$ffffffff;
    for ThreadIndex:=0 to CurrentThreadList^.CountThreads-1 do begin
     CurrentThread:=@CurrentThreadList^.Threads[ThreadIndex];
     Instruction:=CurrentThread^.Instruction;
  