Matches an IPv6 address.
Performances are the same as the excellent one from frusty. This regular expression uses pattern repetition (?n) to reduce the length to 191 characters.