@NonNull
    public static List<String> getAll(final String text, final String startToken, final String endToken) {
        if (text == null) {
            return Collections.emptyList();
        }
        final Matcher m = getTokenSearchPattern(startToken, endToken).matcher(text);
        final List<String> result = new ArrayList<>();
        while (m.find()) {
            result.add(m.group(1));
        }
        return result;
    }
Gets all text occurences starting with 'startToken' and ending with 'endToken'.
it is assured that for same parameters, matches are always the same as in {@link #replaceAll(String, String, String, String)}.

@param text       text to search in
@param startToken starttoken. if blank then "starttoken" is assumed to be start of text
@param endToken   starttoken. if blank then "endtoken" is assumed to be end of text
@return list of found matches
main/src/main/java/cgeo/geocaching/utils/TextUtils.java