Still, you can make a pattern that does not accept a ) as the last char.. Something like
((http[s]?|ftp)://[\w/.()-]+[\w/.(-])
it will match
http://msdn.microsoft.com/en-us/library/aa172799(SQL.80).aspx
and
http://msdn.microsoft.com/en-us/library/aa172799SQL.80.aspx
in
(http://msdn.microsoft.com/en-us/library/aa172799SQL.80.aspx)