docs: public static Version parse(String text) {
      String s = trimToEmpty(text);
      String qualifier = substringAfter(s, QUALIFIER_SEPARATOR);
      if (!qualifier.isEmpty()) {
        s = substringBefore(s, QUALIFIER_SEPARATOR);
      }
      List<String> fields = SEQUENCE_SPLITTER.splitToList(s);
      int major = 0;
      int minor = 0;
      int patch = DEFAULT_PATCH;
      long buildNumber = DEFAULT_BUILD_NUMBER;
      int size = fields.size();
      if (size > 0) {
        major = parseFieldAsInt(fields.get(0));
        if (size > 1) {
          minor = parseFieldAsInt(fields.get(1));
          if (size > 2) {
            patch = parseFieldAsInt(fields.get(2));
            if (size > 3) {
              buildNumber = parseFieldAsLong(fields.get(3));
              if (size > 4) {
                throw new IllegalArgumentException("Maximum 4 fields are accepted: " + text);
              }
            }
          }
        }
      }
      return new Version(major, minor, patch, buildNumber, qualifier);
    }