Jan Goyvaerts, creator of RegexBuddy, has written a response to Jeff Atwood’s blog that addresses the issues Jeff had and provides a nice solution.
\b(?:(?:https?|ftp|file)://|www\.|ftp\.)[-A-Z0-9+&@#/%=~_|$?!:,.]*[A-Z0-9+&@#/%=~_|$]
In order to ignore matches that occur right next to a ” or >, you could add (?<![">])
to the start of the regex, so you get
(?<![">])\b(?:(?:https?|ftp|file)://|www\.|ftp\.)[-A-Z0-9+&@#/%=~_|$?!:,.]*[A-Z0-9+&@#/%=~_|$]
This will match full addresses (http://...) and addresses that start with www. or ftp. – you’re out of luck with addresses like ars.userfriendly.org…