code: public static String patternToRegex(String pattern) {
      if (pattern == null) {
        return ".*";
      } else {
        StringBuilder result = new StringBuilder(pattern.length());
  
        boolean escaped = false;
        for (int i = 0, len = pattern.length(); i < len; i++) {
          char c = pattern.charAt(i);
          if (escaped) {
            if (c != SEARCH_STRING_ESCAPE) {
              escaped = false;
            }
            result.append(c);
          } else {
            if (c == SEARCH_STRING_ESCAPE) {
              escaped = true;
              continue;
            } else if (c == '%') {
              result.append(".*");
            } else if (c == '_') {
              result.append('.');
            } else {
              result.append(Character.toLowerCase(c));
            }
          }
        }
        return result.toString();
      }
    }
docs: Convert a SQL search pattern into an equivalent Java Regex.
  
  @param pattern input which may contain '%' or '_' wildcard characters, or
  these characters escaped using {@code getSearchStringEscape()}.
  @return replace %/_ with regex search characters, also handle escaped
  characters.