     (format "Could not find parameter handler for [%s] with concept-type [%s]"
             param concept-type)))
 
+(defn- convert-to-regex
+  "Convert a parameter with wildcards to a regex"
+  [param]
+  (-> param
+      (str/replace #"\?" ".")
+      (str/replace #"\*" ".*")
+      re-pattern))
+
 (defn string-parameter->condition
   [param value options]
   (let [case-sensitive (case-sensitive-field? param options)

          pattern (pattern-field? :collection-data-type options)]
      (if (or (= "SCIENCE_QUALITY" value)
              (and (= "SCIENCE_QUALITY" (str/upper-case value))
                   (not= "false" (get-in options [:collection-data-type :ignore-case]))))
        ; SCIENCE_QUALITY collection-data-type should match concepts with SCIENCE_QUALITY
        ; or the ones missing collection-data-type field
        (qm/or-conds


    :else
    (errors/internal-error! (format "Boolean condition for %s has invalid value of [%s]" param value))))

(defmethod parameter->condition :readable-granule-name
  [concept-type param value options]
