anchor.diff:    while assigned(Instruction) and (InstructionGenerations[Instruction^.IDandOpcode shr 8]<>Generation) do begin
      InstructionGenerations[Instruction^.IDandOpcode shr 8]:=Generation;
      case Instruction^.IDandOpcode and $ff of
  +{$ifdef UseOpcodeJMP}
       opJMP,
  +{$endif}
       opSAVE,
       opZEROWIDTH,
       opLOOKBEHINDNEGATIVE,opLOOKBEHINDPOSITIVE,opLOOKAHEADNEGATIVE,opLOOKAHEADPOSITIVE,
  
positive.code:         if Node^.Value<>0 then begin
           // Non-greedy
           Instructions[i0].OtherNext:=pointer(ptrint(CountInstructions));
           Emit(Node^.Left);
           i1:=NewInstruction(opJMP);
           Instructions[i1].Next:=pointer(ptrint(i0));
           Instructions[i0].Next:=pointer(ptrint(CountInstructions));
          end else begin
           // Greedy
           Instructions[i0].Next:=pointer(ptrint(CountInstructions));
           Emit(Node^.Left);
           i1:=NewInstruction(opJMP);
           Instructions[i1].Next:=pointer(ptrint(i0));
           Instructions[i0].OtherNext:=pointer(ptrint(CountInstructions));
          end;
         end;
        end else begin
  
negative.code:    end else begin
      InstructionGenerations[Instruction^.IDandOpcode shr 8]:=Generation;
      case Instruction^.IDandOpcode and $ff of
  {$ifdef UseOpcodeJMP}
       opJMP:begin
        if (CurrentPosition=0) and ((Instruction^.Next^.IDandOpcode shr 8)<=(Instruction^.IDandOpcode shr 8)) then begin
         BeginningJump:=true;
  