(?:
http://(?:(?:(?:(?:(?:[a-zA-Z\d](?
?:[a-zA-Z\d]|-)*[a-zA-Z\d])?)\.)*(?:[a-zA-Z](?
?:[a-zA-Z\d]|-)*[a-zA-Z\d])?))|(?
?:\d+)(?:\.(?:\d+)){3}))(?:
?:\d+))?)(?:/(?
?
?
?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[;:@&=])*)(?:/(?
?
?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[;:@&=])*))*)(?:\?(?
?
?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[;:@&=])*))?)?)|(?:
ftp://(?:(?:(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[;?&=])*)(?:
?
?
?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[;?&=])*))?@)?(?
?
?
?
?:[a-zA-Z\d](?
?:[a-zA-Z\d]|-)*[a-zA-Z\d])?)\.)*(?:[a-zA-Z](?
?:[a-zA-Z\d]|-)*[a-zA-Z\d])?))|(?
?:\d+)(?:\.(?:\d+)){3}))(?:
?:\d+))?))(?:/(?
?
?
?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[?:@&=])*)(?:/(?
?
?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[?:@&=])*))*)(?:;type=[AIDaid])?)?)|(?:news
?
?
?
?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[;/?:&=])+@(?
?
?
?:[a-zA-Z\d](?
?:[a-zA-Z\d]|-)*[a-zA-Z\d])?)\.)*(?:[a-zA-Z](?
?:[a-zA-Z\d]|-)*[a-zA-Z\d])?))|(?
?:\d+)(?:\.(?:\d+)){3})))|(?:[a-zA-Z](?:[a-zA-Z\d]|[_.+-])*)|\*))|(?:nntp://(?
?
?
?
?:[a-zA-Z\d](?
?:[a-zA-Z\d]|-)*[a-zA-Z\d])?)\.)*(?:[a-zA-Z](?
?:[a-zA-Z\d]|-)*[a-zA-Z\d])?))|(?
?:\d+)(?:\.(?:\d+)){3}))(?:
?:\d+))?)/(?:[a-zA-Z](?:[a-zA-Z\d]|[_.+-])*)(?:/(?:\d+))?)|(?:
telnet://(?:(?:(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[;?&=])*)(?:
?
?
?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[;?&=])*))?@)?(?
?
?
?
?:[a-zA-Z\d](?
?:[a-zA-Z\d]|-)*[a-zA-Z\d])?)\.)*(?:[a-zA-Z](?
?:[a-zA-Z\d]|-)*[a-zA-Z\d])?))|(?
?:\d+)(?:\.(?:\d+)){3}))(?:
?:\d+))?))/?)|(?:
gopher://(?:(?:(?:(?:(?:[a-zA-Z\d](?
?:[a-zA-Z\d]|-)*[a-zA-Z\d])?)\.)*(?:[a-zA-Z](?
?:[a-zA-Z\d]|-)*[a-zA-Z\d])?))|(?
?:\d+)(?:\.(?:\d+)){3}))(?:
?:\d+))?)(?:/(?:[a-zA-Z\d$\-_.+!*'(),;/?:@&=]|(?:%[a-fA-F\d]{2}))(?
?
?:[a-zA-Z\d$\-_.+!*'(),;/?:@&=]|(?:%[a-fA-F\d]{2}))*)(?:%09(?
?
?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[;:@&=])*)(?:%09(?
?:[a-zA-Z\d$\-_.+!*'(),;/?:@&=]|(?:%[a-fA-F\d]{2}))*))?)?)?)?)|(?:wais://(?
?
?
?
?:[a-zA-Z\d](?
?:[a-zA-Z\d]|-)*[a-zA-Z\d])?)\.)*(?:[a-zA-Z](?
?:[a-zA-Z\d]|-)*[a-zA-Z\d])?))|(?
?:\d+)(?:\.(?:\d+)){3}))(?:
?:\d+))?)/(?
?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))*)(?
?:/(?
?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))*)/(?
?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))*))|\?(?
?
?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[;:@&=])*))?)|(?
ailto
?
?:[a-zA-Z\d$\-_.+!*'(),;/?:@&=]|(?:%[a-fA-F\d]{2}))+))|(?:file://(?
?
?
?
?:[a-zA-Z\d](?
?:[a-zA-Z\d]|-)*[a-zA-Z\d])?)\.)*(?:[a-zA-Z](?
?:[a-zA-Z\d]|-)*[a-zA-Z\d])?))|(?
?:\d+)(?:\.(?:\d+)){3}))|localhost)?/(?
?
?
?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[?:@&=])*)(?:/(?
?
?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[?:@&=])*))*))|(?
rospero://(?
?
?
?
?:[a-zA-Z\d](?
?:[a-zA-Z\d]|-)*[a-zA-Z\d])?)\.)*(?:[a-zA-Z](?
?:[a-zA-Z\d]|-)*[a-zA-Z\d])?))|(?
?:\d+)(?:\.(?:\d+)){3}))(?:
?:\d+))?)/(?
?
?
?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[?:@&=])*)(?:/(?
?
?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[?:@&=])*))*)(?
?:;(?
?
?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[?:@&])*)=(?
?
?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[?:@&])*)))*)|(?:ldap://(?
?
?
?
?
?:[a-zA-Z\d](?
?:[a-zA-Z\d]|-)*[a-zA-Z\d])?)\.)*(?:[a-zA-Z](?
?:[a-zA-Z\d]|-)*[a-zA-Z\d])?))|(?
?:\d+)(?:\.(?:\d+)){3}))(?:
?:\d+))?))?/(?
?
?
?
?
?
?:[a-zA-Z\d]|%(?:3\d|[46][a-fA-F\d]|[57][Aa\d]))|(?:%20))+|(?:OID|oid)\.(?
?:\d+)(?:\.(?:\d+))*))(?
?:%0[Aa])?(?:%20)*)=(?
?:%0[Aa])?(?:%20)*))?(?
?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))*))(?
?
?:%0[Aa])?(?:%20)*)\+(?
?:%0[Aa])?(?:%20)*)(?
?
?
?
?:[a-zA-Z\d]|%(?:3\d|[46][a-fA-F\d]|[57][Aa\d]))|(?:%20))+|(?:OID|oid)\.(?
?:\d+)(?:\.(?:\d+))*))(?
?:%0[Aa])?(?:%20)*)=(?
?:%0[Aa])?(?:%20)*))?(?
?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))*)))*)(?
?
?
?:%0[Aa])?(?:%20)*)(?:[;,])(?
?:%0[Aa])?(?:%20)*))(?
?
?
?
?
?:[a-zA-Z\d]|%(?:3\d|[46][a-fA-F\d]|[57][Aa\d]))|(?:%20))+|(?:OID|oid)\.(?
?:\d+)(?:\.(?:\d+))*))(?
?:%0[Aa])?(?:%20)*)=(?
?:%0[Aa])?(?:%20)*))?(?
?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))*))(?
?
?:%0[Aa])?(?:%20)*)\+(?
?:%0[Aa])?(?:%20)*)(?
?
?
?
?:[a-zA-Z\d]|%(?:3\d|[46][a-fA-F\d]|[57][Aa\d]))|(?:%20))+|(?:OID|oid)\.(?
?:\d+)(?:\.(?:\d+))*))(?
?:%0[Aa])?(?:%20)*)=(?
?:%0[Aa])?(?:%20)*))?(?
?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))*)))*))*(?
?
?:%0[Aa])?(?:%20)*)(?:[;,])(?
?:%0[Aa])?(?:%20)*))?)(?:\?(?
?
?
?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))+)(?:,(?
?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))+))*)?)(?:\?(?:base|one|sub)(?:\?(?
(?:[a-zA-Z\d$\-_.+!*'(),;/?:@&=]|(?:%[a-fA-F\d]{2}))+)))?)?)?)|(?
?:z39\.50[rs])://(?
?
?
?
?:[a-zA-Z\d](?
?:[a-zA-Z\d]|-)*[a-zA-Z\d])?)\.)*(?:[a-zA-Z](?
?:[a-zA-Z\d]|-)*[a-zA-Z\d])?))|(?
?:\d+)(?:\.(?:\d+)){3}))(?:
?:\d+))?)(?:/(?
?
?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))+)(?:\+(?
?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))+))*(?:\?(?
?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))+))?)?(?:;esn=(?
?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))+))?(?:;rs=(?
?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))+)(?:\+(?
?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))+))*)?))|(?:cid
?
?
?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[;?:@&=])*))|(?
id
?
?
?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[;?:@&=])*)(?:/(?
?
?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[;?:@&=])*))?)|(?:vemmi://(?
?
?
?
?:[a-zA-Z\d](?
?:[a-zA-Z\d]|-)*[a-zA-Z\d])?)\.)*(?:[a-zA-Z](?
?:[a-zA-Z\d]|-)*[a-zA-Z\d])?))|(?
?:\d+)(?:\.(?:\d+)){3}))(?:
?:\d+))?)(?:/(?
?
?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[/?:@&=])*)(?
?:;(?
?
?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[/?:@&])*)=(?
?
?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[/?:@&])*))*))?)|(?:imap://(?
?
?
?
?
?
?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[&=~])+)(?
?:;[Aa][Uu][Tt][Hh]=(?:\*|(?
?
?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[&=~])+))))?)|(?
?:;[Aa][Uu][Tt][Hh]=(?:\*|(?
?
?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[&=~])+)))(?
?
?
?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[&=~])+))?))@)?(?
?
?
?
?:[a-zA-Z\d](?
?:[a-zA-Z\d]|-)*[a-zA-Z\d])?)\.)*(?:[a-zA-Z](?
?:[a-zA-Z\d]|-)*[a-zA-Z\d])?))|(?
?:\d+)(?:\.(?:\d+)){3}))(?:
?:\d+))?))/(?
?
?
?
?
?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[&=~:@/])+)?;[Tt][Yy][Pp][Ee]=(?:[Ll](?:[Ii][Ss][Tt]|[Ss][Uu][Bb])))|(?
?
?
?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[&=~:@/])+)(?:\?(?
?
?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[&=~:@/])+))?(?
?:;[Uu][Ii][Dd][Vv][Aa][Ll][Ii][Dd][Ii][Tt][Yy]=(?:[1-9]\d*)))?)|(?
?
?
?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[&=~:@/])+)(?
?:;[Uu][Ii][Dd][Vv][Aa][Ll][Ii][Dd][Ii][Tt][Yy]=(?:[1-9]\d*)))?(?:/;[Uu][Ii][Dd]=(?:[1-9]\d*))(?
?:/;[Ss][Ee][Cc][Tt][Ii][Oo][Nn]=(?
?
?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[&=~:@/])+)))?)))?)|(?:nfs
?
?://(?
?
?
?
?:[a-zA-Z\d](?
?:[a-zA-Z\d]|-)*[a-zA-Z\d])?)\.)*(?:[a-zA-Z](?
?:[a-zA-Z\d]|-)*[a-zA-Z\d])?))|(?
?:\d+)(?:\.(?:\d+)){3}))(?:
?:\d+))?)(?
?:/(?
?
?
?
?:[a-zA-Z\d\$\-_.!~*'(),])|(?:%[a-fA-F\d]{2})|[:@&=+])*)(?:/(?
?
?:[a-zA-Z\d\$\-_.!~*'(),])|(?:%[a-fA-F\d]{2})|[:@&=+])*))*)?)))?)|(?:/(?
?
?
?
?:[a-zA-Z\d\$\-_.!~*'(),])|(?:%[a-fA-F\d]{2})|[:@&=+])*)(?:/(?
?
?:[a-zA-Z\d\$\-_.!~*'(),])|(?:%[a-fA-F\d]{2})|[:@&=+])*))*)?))|(?
?
?
?
?:[a-zA-Z\d\$\-_.!~*'(),])|(?:%[a-fA-F\d]{2})|[:@&=+])*)(?:/(?
?
?:[a-zA-Z\d\$\-_.!~*'(),])|(?:%[a-fA-F\d]{2})|[:@&=+])*))*)?)))