Какую версию sql вы используете? Некоторые версии sql (большинство?) Не поддерживают регулярные выражения.
Основной подход, который мне известен (например, в MS SQL Server), заключается в написании функции, которая фактически анализирует всю строку, проверяет интересующие вас условия и заменяет при необходимости.
Поскольку это будет функция с несколькими операторами, у нее есть свои накладные расходы. Поскольку это звучит как разовое, обычно это не так уж плохо.
Альтернативный подход, который лучше избегать на языках более низкого уровня, но, возможно, подходит на языках более высокого уровня ...
Найдите все вхождения, которые вы НЕ хотите заменять, и замените их шаблоном удержания. (Должно быть известно, что этот шаблон еще не существует в данных.) Выполните замену, а затем верните шаблон удержания в исходную строку.
Start = abc "abc" 'abc'
Step1 = abc "xxx" 'abc' -- REPLACE('"abc", '"xxx"', start)
Step2 = abc "xxx" 'xxx' -- REPLACE('''abc''', '''xxx''', step1)
Step3 = ??? "xxx" 'xxx' -- REPLACE('abc', '???', step2)
Final = ??? "abc" 'abc' -- REPLACE('xxx', 'abc', step3)