@NotNull
    private ImmutablePair<String, String> parseNameAndPrefix(final String[] words, final WaypointType wpType) {
        if (words.length == 0 || !words[0].startsWith(PARSING_NAME_PRAEFIX)) {
            return new ImmutablePair<>("", "");
        }
        //first word handling
        StringBuilder name = new StringBuilder(words[0].substring(PARSING_NAME_PRAEFIX.length()));
        String prefix = "";
        final int idx = name.indexOf(PARSING_PREFIX_CLOSE);
        if (idx > 0 && name.toString().startsWith(PARSING_PREFIX_OPEN)) {
            prefix = name.substring(PARSING_PREFIX_OPEN.length(), idx).trim();
            name = new StringBuilder(name.substring(idx + 1));
        }

        //handle additional words if any
        for (int i = 1; i < words.length; i++) {
            if (useWordForParsedName(words[i], i == words.length - 1, wpType)) {
                if (name.length() > 0) {
                    name.append(" ");
                }
                name.append(words[i]);
            }
        }
        return new ImmutablePair<>(StringUtils.isBlank(name.toString()) ? "" : name.toString().trim(), prefix);
    }
try to parse a name out of given words. If not possible, empty is returned
main/src/main/java/cgeo/geocaching/models/CacheArtefactParser.java