Monkey, I'd do it like so:
on $*:text:/^.!@/Si:#:{ if ($regml(1) == wine) && ($2) { elseif ($regml(1) == slap) && ($2) { ... etc..
But to me it's still a waste of regex in such fashion.