anchor.diff:          i0:=CountInstructions;
           Emit(Node^.Left);
           i1:=NewInstruction(opSPLIT);
  +        Instructions[i1].Value:=skPLUS;
           if Node^.Value<>0 then begin
            // Non-greedy
            Instructions[i1].OtherNext:=pointer(ptrint(i0));
  
positive.code:      end;
       ntSTAR:begin
        i0:=NewInstruction(opSPLIT);
        if Node^.Value<>0 then begin
         // Non-greedy
         Instructions[i0].OtherNext:=pointer(ptrint(CountInstructions));
  
negative.code:       i0:=CountInstructions;
        Emit(Node^.Left);
        i1:=NewInstruction(opSPLIT);
        Instructions[i1].Value:=skPLUS;
        if Node^.Value<>0 then begin
         // Non-greedy
         Instructions[i1].OtherNext:=pointer(ptrint(i0));
  