I notice that some of the entries (like for pigin & audacity) seem to be trying to exclude matches of certain strings. If that is the intent, the form given is not actually correct. The given form is using character set exclusions, which don't treat the item between the brackets as a string, just an unordered character set, and only matches a single character as used, anyway.
The form to use is the "negative lookahead". This following expression works for Office Communicator/Microsoft Lync, e.g. It only captures the conversation window activity, not the buddy list activity:
#ms communicator (Lync)
communicator ^(?!Microsoft Lync|Office Communicator)(.*?)$