This might be nitpicky, but perhaps (hopefully) educational for the OP. Caught my eye because we actually had almost identical responses... (mine is
here)
- I had http? and you had https* -- yours would match httpssss://blah.com since the * is zero more instead of ? being 0 or 1
- I have ://\S+? and you have :\S*? -- yours would match http:. or http: or http:/blah or http:blah.com
- I have (\.?\s) and you have (\.*?\s) -- I think yours is better here, but i'm sure how the two non-greedy (one for \S and one for \.) work together in the case of http://blah.com...