Вам просто нужно поискать немного впереди и позади URL-адреса, чтобы увидеть, находится ли он в кавычках, вряд ли кто-то вставит цитируемый URL в виде открытого текста, но URL всегда заключаются в теги и типы документов. Таким образом, ваше регулярное выражение становится:
(^|[^'"])(http://([\\w+?\\.\\w+])+([a-zA-Z0-9\\~\\!\\@\\#\\$\\%\\^\\&\\*\\(\\)_\\-\\=\\+\\\\\\/\\?\\.\\:\\;\\'\\,]*)?)([^'"]+|$)
(^ | [^ '"] +) означает начало строки или символа, который НЕ является кавычкой
([^ '"] | $) означает конец строки или не кавычка
Дополнительные квадратные скобки вокруг старого регулярного выражения гарантируют, что это группа захвата, поэтому вы можете получить фактический URL-адрес с помощью \ 2 (группа 2) вместо того, чтобы получить дополнительное дерьмо, которое могло бы соответствовать краям URL
Кстати, ваше URL-выражение выглядит довольно плохо, есть более компактные и точные формы. Тебе действительно не нужно бежать ВСЕ.