Какое регулярное выражение способно охватить 6 вариантов написания URL?
$text = 'Our sites: example.com, www.example.com, http://example.com, https://example.com, http://www.example.com or https://www.example.com.';
$pattern = '# regular expression #';
preg_match($pattern, $text, $matches);
Я думаю, вам подойдёт ответ из англоязычного StackOverflow:
(?i)\b((?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))
Вдобавок на эту тему есть целая статья
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости