I have tried using my own and using the top ones here on StackOverflow, but most of them let matched more than was desired.
For instance, some would extract http://foo.com/hello?world<br (note <br at end) from the input ...http://foo.com/hello?world<br>....
If there a pattern that can match just the URL more reliably?
This is the current pattern I am using:
@"((https?|ftp|gopher|telnet|file|notes|ms-help):((//)|(\\\\))+[\w\d:#@%/;$()~_?\+-=\\\.&^]*)"
Your regex needs an escape for the dash “-” in the last character group:
Essentially, you were allowing characters from + through =, which includes <