Судя по комментариям, вы ищете случаи, когда URL-адрес смешивается с другим текстом в строке , а не обязательно предложением . Для этого я бы использовал что-то вроде этого:
.+\b((http|ftp|https):\/\/)[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)\b.+
Это меняет ваш запрос, утверждая, что должно быть несколько символов, за которыми следует граница слова, затем URL, затем граница слова и затем некоторыми другими персонажами. Это не будет соответствовать URL в начале или конце строки, которая также имеет другой контент; для этого вам, вероятно, понадобится два двух разных соответствия - одно для URL с чем-то перед ним, другое для URL с чем-то после него.