Well, I give up trying to get my last rule in place; it was for if you have a slash immediately after a dot. Whatever, it's perfect otherwise: ``` text.replace(/((https?|ftp):\/\/(([^.\/\s#?]+?)(?=\.)([^\s]+)))/g, '[$3]($1)') ``` http://regexr.com/3b9ta Longer than Marsh's, but it covers more rules; less matches made on invalid URLs Not sure what my score is, since I can't figure out how Marsh got his score from his own scoring system…