You could filter with a regular expression as the matchtext, though this would require 1) transformation of "regular" wildcards into their regex equivalents and 2) escaping of all other possible metachars, or \Q\E-quoting for everything except the "wildcards".

Example: if scanning for the strings
Code:
test
something else
a single wildc?rd
*ltiple wildc*s
With some $replacex and $+'s, you could create the regex:
Code:
/\Qtest\E|\Qsomething else\E|\Qa single wildc\E.\Qrd\E|.*\Qltiple wildc\E.*\Qs\E/i


As an alternative, especially if you're not into regular expressions, why not:
1) filter matches for every search string into separate files (or hidden windows, or a single hidden window)
2) merge the results (if not using a single hidden window) and remove duplicate lines with a loop. If you decide to use hidden windows (or a single hidden window), /aline -n could be handy. (The cleaned window content could be dumped into a textfile with /filter or /savebuf.)

This may sound a bit long winded, but it should perform much faster than a $read-loop on a large file, especially if the No. of matched lines will usually be a fraction of the original file only:
- /filter itself is extremely fast (...compared to all other scanning/matching methods available in mIRC)
- loops on the lines of hidden windows will be faster than loops on physical files
smile