User modes are defined by the IRCd. Moreover, you may use something like that :
alias mode1 {
if ($nick isop $chan) return @
elseif ($nick ishop $chan) return %
elseif ($nick isvoice $chan) return +
elseif ($nick isreg $chan) return reg
return other
}
'Other' is used for modes like &, !, etc...
I know this code is much bigger than yours but mine works