That doesn't help at all. His problem is that "?" is treated a wildcard char in the <matchtext> part of the on TEXT event. Well, "?" is treated as the same special char in a "iswm" comparison, so "if (?* iswm <something>) actually means "if <something> consists of one or more characters".
There are many ways to get around this. Personally I'd use something like:
on *:text:??*:#:{
if $regex($1,/^\?+(.+)/) {
var %command = $regml(1)
if %command == this { do this }
elseif %command == that { do that }
.....
}
}