public static Path of(final String value) {
		if (value.isEmpty()) {
			return EMPTY;
		}

		final var matcher = PATH_ELEMENT_PATTERN.matcher(value);
		final var elements = new ArrayList<Element>();
		while (matcher.find()) {
			elements.add(Element.parse(matcher.group()));
		}

		if (!toString(elements).equals(value)) {
			throw new IllegalArgumentException(
				"Invalid path: '%s'.".formatted(value)
			);
		}

		return new Path(elements);
	}
Create a new property path form the given string {@code value}. A
valid path consists of a names, which must be a valid Java identifier,
and indexes, separated by a dot, '.'. A valid path with three elements
will look like this:
{@snippet lang="java":
final var path = Path.of("name1.name2[9].value");
}

@param value the path value
@return a new property path
@throws IllegalArgumentException if the given path is invalid
jenetics.incubator/src/main/java/io/jenetics/incubator/beans/Path.java