Условие НЕ в выражении

1. Вантуз-мен (09.06.2016 / 15:40)
Помогите составить регулярное выражение обработки ссылок

задача в следующем
есть к примеру ссылка http:\\xxx.ru есть такая ссылка [url=http:\\xxx.ru]site[\url]

все это парсится вот таким выражение

$msg = preg_replace_callback('~\[url=(https?://.+?)\](.+?)\[/url\]|(https?://[0-9a-zа-яё/.;?=\(\)\_\-&%#]+)~ui', 'url_replace', $msg);

теперь к примеру я ввел тег img

[img]http:\\xxx.ru/images/logo.jpeg[/img]

которая парсится как <img src="http:\\xxx.ru/images/logo.jpeg" alt="image">

нужно доработать регулярку чтобы он ссылки такие не трогал

что-то вроде этого
$msg = preg_replace_callback('~\[url=(https?://.+?)\](.+?)\[/url\]|(?!src=\")(https?://[0-9a-zа-яё/.;?=\(\)\_\-&%#]+)~ui', 'url_replace', $msg);


2. Вантуз-мен (09.06.2016 / 16:30)
Кажется разобрался, это называется отрицательное заглядывание назад
$msg = preg_replace_callback('~\[url=(https?://.+?)\](.+?)\[/url\]|(?<!src\=\")(https?://[0-9a-zа-яё/.;?=\(\)\_\-&%#]+)~ui', 'url_replace', $msg);


URL: https://visavi.net/topics/43024