private static void scanCoordinatePattern(final String stext, final List<Pair<String, String>> result, final Set<String> resultSet) {
        if (stext == null) {
            return;
        }
        final String text = preprocessScanText(stext);
        final Matcher m = COORDINATE_SCAN_PATTERN.matcher(" " + text + " ");
        int start = 0;
        while (m.find(start)) {
            final String lat = m.group(1); // group("lat") needs SDk level >= 26
            final String lon = m.group(5); // group("lon") needs SDk level >= 26
            final String latProcessed = processFoundDegree(lat);
            final String lonProcessed = processFoundDegree(lon);
            final String key = pairToKey(latProcessed, lonProcessed);
            if (!resultSet.contains(key) && checkCandidate(latProcessed) && checkCandidate(lonProcessed)) {
                result.add(new Pair<>(latProcessed, lonProcessed));
                resultSet.add(key);
            }
            start = m.end();
        }
    }
Holds implementations for functions in Formula
main/src/main/java/cgeo/geocaching/utils/formulas/FormulaUtils.java