public boolean match(String text, int start, int end) {
        if (text == null) {
            throw new IllegalArgumentException();
        }
        if (start > end) {
            return false;
        }
        int tlen = text.length();
        start = Math.max(0, start);
        end = Math.min(end, tlen);
        if (full.match(text, start, end)) {
            return true;
        }
        if (parts.isEmpty()) {
            return false;
        }
        for (StringMatcher subMatcher : parts) {
            if (subMatcher.match(text, start, end)) {
                return true;
            }
        }
        return false;
    }
Determines whether the given sub-string of {@code text} from {@code start}
(inclusive) to {@code end} (exclusive) matches the pattern.

@param text  String to match in; must not be {@code null}
@param start start index (inclusive) within {@code text} of the sub-string to
             match
@param end   end index (exclusive) within {@code text} of the sub-string to
             match
@return {@code true} if the given slice of {@code text} matches the pattern;
        {@code false} otherwise
@throws IllegalArgumentException if {@code text == null}
plugins/org.jkiss.dbeaver.ui.navigator/src/org/jkiss/dbeaver/ui/navigator/database/TextMatcherExt.java