Напр. есть условие:
...
WHERE column1 REGEXP :query
где $query = '\^[^~]*' . наш_запрос . '[^~]*~'
Проблема в том, что если в запросе будет звёздочка, то выражением станет
\^[^~]**[^~]*~
, и мы получим ошибку
1139 Got error 'nothing to repeat at offset 7' from regexp
Если будут вопросы, то выражением станет
\^[^~]*?????[^~]*~
, и мы получим ошибку
1139 Got error 'nothing to repeat at offset 8' from regexp
И вариантов со спецсимволами в регулярке может быть масса. Какой функцией (В PHP или в самом SQL-запросе, не важно) их изолировать, чтобы MYSQL воспринимал эту часть регулярного выражения исключительно как СТРОКУ?