/(.*?)((http:\/\/|https:\/\/)?[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,6}(\/[a-zA-Z0-9\-\.]+)*){1}(.*?)/g
I could only make some assumptions about the above regex. But most of it is cryptic to me.
(http:\/\/|https:\/\/) - It contains either http or https protocol.
[a-zA-Z]{2,6} - Contain any of the lower or uppercase characters between 2 and 6 times.
/g - Search for it recursively
But was not able to put all of the blocks together.