((?P<protocol1>[a-z][a-z]+)://)?
(?P<domain1>\w(?:[\w-]*\w)?\.\w(?:[\w-]*\w)?(?:\.\w(?:[\w-]*\w)?)*)
) | (?P<format2>
((?P<protocol2>[a-z][a-z]+)://)
(?P<domain2>\w(?:[\w-]*\w)?(?:\.\w(?:[\w-]*\w)?)*)
((?P<protocol1>[a-z][a-z]+)://)?
(?P<domain1>\w(?:[\w-]*\w)?\.\w(?:[\w-]*\w)?(?:\.\w(?:[\w-]*\w)?)*)
) | (?P<format2>
((?P<protocol2>[a-z][a-z]+)://)
(?P<domain2>\w(?:[\w-]*\w)?(?:\.\w(?:[\w-]*\w)?)*)