code: public static VersionNumber parseVersion(@Nonnull final String version) {
  		Check.notNull(version, "version");
  
  		VersionNumber result = new VersionNumber(new ArrayList<String>(0), version);
  		final Matcher matcher = VERSIONSTRING.matcher(version);
  		if (matcher.find()) {
  			final List<String> groups = Arrays.asList(matcher.group(MAJOR_INDEX).split("\\."));
  			final String extension = matcher.group(EXTENSION_INDEX) == null ? VersionNumber.EMPTY_EXTENSION : trimRight(matcher
  					.group(EXTENSION_INDEX));
  			result = new VersionNumber(groups, extension);
  		}
  
  		return result;
  	}
docs: Interprets a string with version information. The first found group will be taken and processed.
  
  @param version
  version as string
  @return an object of {@code VersionNumber}, never {@code null}