code: private String preReleaseIdentifier() {
          checkForEmptyIdentifier();
          CharType boundary = nearestCharType(DOT, PLUS, EOI);
          if (chars.positiveLookaheadBefore(boundary, LETTER, HYPHEN)) {
              return alphanumericIdentifier();
          } else {
              return numericIdentifier();
          }
      }
docs: Parses the {@literal <pre-release identifier>} non-terminal.
  
  <pre>
  {@literal
  <pre-release identifier> ::= <alphanumeric identifier>
  | <numeric identifier>
  }
  </pre>
  
  @return a single pre-release identifier