anchor.diff:       end;
        ntSTAR:begin
         i0:=NewInstruction(opSPLIT);
  +      Instructions[i0].Value:=skSTAR;
         if Node^.Value<>0 then begin
          // Non-greedy
          Instructions[i0].OtherNext:=pointer(ptrint(CountInstructions));
  
positive.code:         end else begin
           for Counter:=Node^.MinCount to Node^.MaxCount-1 do 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));
  