anchor.diff:        if (char < CHAR_0 || char > CHAR_9) fail(position);
         do {
           position++;
  -        if (position == length) return handleLiteral(position);
  +        if (position == length) return _handleLiteral(start, position, true);
           char = source.codeUnitAt(position);
         } while (CHAR_0 <= char && char <= CHAR_9);
       }
  
positive.code:     } else {
        do {
          position++;
          if (position == length) return handleLiteral(position);
          char = source.codeUnitAt(position);
        } while (CHAR_0 <= char && char <= CHAR_9);
      }
  
negative.code:     if (char < CHAR_0 || char > CHAR_9) {
        fail(position, "Missing expected digit");
      }
      if (char == CHAR_0) {
        position++;
        if (position == length) return _handleLiteral(start, position, false);
        char = source.codeUnitAt(position);
        if (CHAR_0 <= char && char <= CHAR_9) {
          fail(position);
  