code: public final void parseVersion(String version) {
          versionParts = new ArrayList<>();
          if (version != null) {
              final Pattern rx = Pattern.compile("(\\d+[a-z]{1,3}$|[a-z]+\\d+|\\d+|(release|beta|alpha)$)");
              final Matcher matcher = rx.matcher(version.toLowerCase());
              while (matcher.find()) {
                  versionParts.add(matcher.group());
              }
              if (versionParts.isEmpty()) {
                  versionParts.add(version);
              }
          }
      }
docs: Parses a version string into its sub parts: major, minor, revision,
  build, etc. <b>Note</b>, this should only be used to parse something that
  is already known to be a version number.
  
  @param version the version string to parse