instead of requiring @ (or other items in $prefix) to be followed by another character, have @<tab><tab> be sufficient to cycle through all the @Ops. Ditto for +<tab> etc.
Though tab-complete looks at $prefix to see which strings can be auto-completed to include the channel name, it currently doesn't include the % for halfops when that's in $prefix, such as at Rizon. Use case:
/notice @#<tab_complete> message
/notice %#<tab_complete> message
A work-around is to set this next global variable then after %# you can press <tab> twice:
/set %# $active
If backwards compatibility needs to support auto-complete for a global variable, then have the $prefix setting be a fall-back before do-nothing.