anchor.diff:      opSINGLECHAR,opCHAR,opANY,opMATCH:begin
        // Just save onto the queue
       end;
  -    opJMP,opSAVE,opMULTIMATCH,opLOOKBEHINDNEGATIVE,opLOOKBEHINDPOSITIVE,opLOOKAHEADNEGATIVE,opLOOKAHEADPOSITIVE,opBACKREFERENCE,opBACKREFERENCEIGNORECASE:begin
  +    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);
  
positive.code:       Emit(Node^.Left);
        if not assigned(BackreferenceParentNode) then begin
         Emit(Node^.Left);
         i0:=NewInstruction(opMULTIMATCH);
         Instructions[i0].Value:=Node^.Value;
         Instructions[i0].Next:=pointer(ptrint(CountInstructions));
         i0:=NewInstruction(opMATCH);
         Instructions[i0].Value:=Node^.Value;
         Instructions[i0].Next:=pointer(ptrint(CountInstructions));
  
negative.code:        end;
        end;
       end;
       opZEROWIDTH:begin
        if ((longword(Instruction^.Value) and sfEmptyAllFlags) and not ThreadLocalStorageInstance.GetSatisfyFlags(Position))=0 then begin
         Instruction:=Instruction^.Next;
  