public static GoVerRange parse(String s) {
		String[] verNums = s.split("[+-]", -1); // "1.2-1.5" or "1.2+" or "-1.2"
		String startStr = verNums[0];
		String endStr = verNums.length > 1 ? verNums[1] : verNums[0];

		GoVer start = startStr.isBlank() ? GoVer.ANY : GoVer.parseWildcardPatch(startStr);
		GoVer end = (endStr == startStr)
				? start
				: endStr.isBlank()
						? GoVer.ANY
						: GoVer.parseWildcardPatch(endStr);

		return (start == GoVer.ANY && end == GoVer.ANY) || (start.isInvalid() || end.isInvalid())
				? EMPTY
				: new GoVerRange(start, end);
	}
Parses a version range string (eg. "1.2-1.5", or "-1.5", or "1.2+")
<p>
Version ranges can be specified with leading or trailing wildcards
(eg. "-end_ver", or "start_ver-", or "start_ver+").

@param s string to parse
@return returns a {@link GoVerRange} instance, or the special {@link #EMPTY} instance
if the string string is bad
Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/golang/GoVerRange.java