The main idea is that a set of
seperate expressions is far more easy to read and edit than a single, condensed regular expression - in case you want to find/remove/add/... a specific bad-definition.
It would further allow for different switches per expression, or for example to script some kind of dialog-GUI arround it (for viewing/editing of the current bad-definitions).
For the actual checking routine, you'd need one single "if $hfind"-check like in Wims example, which is on par with the single "if $regex"-check in your examples. (The items may be added to the table e.g. on start.)
Altogh mIRC will loop the hash'd items internally of course, this will process faster than e.g. a $*tok-based check on a token list which requires a
custom loop.
If you got the idea by now, you can easily modify your script for benching purposes... it won't process faster than your last script, but rather add some flexibility to it. And as stated, this is only a suggestion - to be of use if speed isn't everything to you.