Here's my take (supports both nickmodes and channel modes):
on @*:input:#:{
if ($regex($1,/^[+-][ $nickmode ]/x)) {
if ($2 !ison $chan) { echo 4 User $qt($2) is not currently on the channel. }
else { mode $chan $1- }
}
elseif ($regex($1,/^[+-][ $remove($chanmodes,$chr(44)) ]/x)) { mode $chan $1- }
}