protected String parseNext() {
			if (sep.matcher(buf).lookingAt()) {
				match(sep);
				return parseName();
			}
			if (LBRACKET.matcher(buf).lookingAt()) {
				return match(BRACKETED);
			}
			throw new IllegalArgumentException(
				"Expected " + sep + " or " + LBRACKET + ", but had " + buf);
		}
Sort paths by length, longest first, then as in {@link #KEYED}.
Ghidra/Debug/Framework-TraceModeling/src/main/java/ghidra/trace/model/target/path/KeyPath.java