The blue social bookmark and publication sharing system.
Log in with your username.
I've lost my password.
Log in with your OpenID-Provider.
All regexes first get combined into a single big disjunction. Then, for each match, the matching sub-regex is determined from a group name and the match object dispatched to a corresponding method, or simply replaced by a string.