private static List<Selection> parseSelection(String nodes) {
        List<Selection> ret = new ArrayList<>();
        while (nodes.length() > 0) {
            if (nodes.startsWith("[")) {
                nodes = parseNodeRange(nodes, ret);
            } else {
                if (isWildcard(nodes)) { // any node will be accepted
                    return List.of();
                }
                nodes = parseNodeNum(nodes, ret);
            }
        }
        return ret;
    }
Parses a search path and select nodes from the given cluster based on it.

@param searchPath unparsed search path expression (see: model.searchPath in Search API reference)
@param cluster the search cluster from which nodes are selected
@throws InvalidSearchPathException if the searchPath is malformed
@return list of nodes chosen with the search path, or an empty list in which
        case some other node selection logic should be used
container-search/src/main/java/com/yahoo/search/dispatch/SearchPath.java