anchor.diff:         end;
         end;
        end;
  -     opMULTIMATCH:begin
  -      case Argument of
  -       0:begin
  -        Push(Instruction,ThreadLocalStorageInstance.MultiSubMatches[Instruction^.Value],1);
  -        if ThreadLocalStorageInstance.MultiSubMatches[Instruction^.Value]<Position then begin
  -         ThreadLocalStorageInstance.MultiSubMatches[Instruction^.Value]:=Position;
  -        end;
  -        Instruction:=Instruction^.Next;
  -        if ShouldVisit(Instruction,Position) then begin
  -         continue;
  -        end;
  -       end;
  -       1:begin
  -        if ThreadLocalStorageInstance.MultiSubMatches[Instruction^.Value]<Position then begin
  -         ThreadLocalStorageInstance.MultiSubMatches[Instruction^.Value]:=Position;
  -        end;
  -       end;
  -      end;
  -     end;
        opZEROWIDTH:begin
         if ((longword(Instruction^.Value) and sfEmptyAllFlags) and not ThreadLocalStorageInstance.GetSatisfyFlags(Position))=0 then begin
          Instruction:=Instruction^.Next;
  
positive.code:    repeat
  
      case Instruction^.IDandOpcode and $ff of
       opSPLIT,opSPLITMATCH:begin
        case Argument of
         0:begin
          Push(Instruction,Position,1);
  
negative.code:     opSINGLECHAR,opCHAR,opANY,opMATCH:begin
       // Just save onto the queue
      end;
      opJMP,opSAVE,opLOOKBEHINDNEGATIVE,opLOOKBEHINDPOSITIVE,opLOOKAHEADNEGATIVE,opLOOKAHEADPOSITIVE,opBACKREFERENCE,opBACKREFERENCEIGNORECASE:begin
       // No-ops at DFA
       if (StackPointer+1)>length(QueueStack) then begin
        SetLength(QueueStack,(StackPointer+1)*2);
  