private List<StringMatcher> splitPattern(String pattern,
                                             boolean ignoreCase, boolean ignoreWildCards) {
        String pat = pattern.trim();
        if (pat.isEmpty()) {
            return Collections.emptyList();
        }
        String[] subPatterns = pat.split("\\s+"); //$NON-NLS-1$
        if (subPatterns.length <= 1) {
            if (pat.contains("|")) {
                subPatterns = pat.split("\\|");
            } else if (pat.contains(",")) {
                subPatterns = pat.split(",");
            }
        }
        if (subPatterns.length <= 1) {
            return Collections.emptyList();
        }
        List<StringMatcher> matchers = new ArrayList<>();
        for (String s : subPatterns) {
            if (s == null || s.isEmpty()) {
                continue;
            }
            s = "*" + s;
            StringMatcher m = new StringMatcher(s, ignoreCase, ignoreWildCards);
            m.usePrefixMatch();
            matchers.add(m);
        }
        return matchers;
    }
@param pattern         to match
@param ignoreCase      whether to do case-insensitive matching
@param ignoreWildCards whether to treat '?' and '*' as normal characters, not
                       as wildcards
@throws IllegalArgumentException if {@code pattern == null}
plugins/org.jkiss.dbeaver.ui.navigator/src/org/jkiss/dbeaver/ui/navigator/database/TextMatcherExt.java