code: public static String[] tokenizeVersionString(String version) {
          Matcher matcher = VERSION_PATTERN.matcher(version);
          if (matcher.matches()) {
              String[] tokens = new String[matcher.groupCount()];
              for (int i = 0; i < matcher.groupCount(); i++) {
                  tokens[i] = matcher.group(i + 1);
              }
              return tokens;
          } else {
              return null;
          }
      }
docs: Tokenizes a version string and returns the tokens with the following grouping:
  (1) major version, eg "3"
  (2) minor version, eg "8"
  (3) patch version prefixed with ".", if exists, otherwise {@code null} (eg ".0")
  (4) patch version, eg "0"
  (5) 1st -qualifier, if exists
  (6) -SNAPSHOT qualifier, if exists
  
  @param version
  @return