Регулярные выражения являются языком программирования. Я не думаю, что они достаточно полны по Тьюрингу, но они достаточно близки, чтобы позволить вашим пользователям вводить их на ваш веб-сайт, что позволяет другим людям запускать код на вашем сервере. КЭД, да, это дыра в безопасности.
Возможно, вам удастся уйти с разрешением подмножества любого языка регулярных выражений, который вы хотите использовать, внесения в белый список определенного набора конструкций, чтобы сделать его дырой не слишком большой, чтобы потеть ... другие уже упомянул возможные гибели гнездования и *. Насколько вы готовы позволить людям загружать ваш сервер, зависит только от вас. Лично мне было бы удобно позволить им иметь один SQL-оператор «CONTAINS» и, возможно, «BETWEEN ()». :)