[PRIVMSG] user-type doesn't work

edit: I tested both regex and they both fail. The first because you are using | incorrectly, and the second because it is too greedy.

short-term fix for your immediate problem:
user-type=(mod|global_mod|admin|staff)?
or if you want to capture all, not just match:
(user-type=(?:mod|global_mod|admin|staff)?)

It is not recommended to use regex to parse IRC messages. Use a tokenizer instead. Twisted has been suggested here before: http://twistedmatrix.com/trac/browser/tags/releases/twisted-15.0.0/twisted/words/protocols/irc.py#L75

or you can make your own.