Строка запроса при обработке SQL интерпретатором уже будет рассматриваться синтаксическим аппаратом SQL, в нем уже не отличишь, что реально имели ввиду, когда подставляли параметры.
Предобработка такой строки регулярными выражениями, хоть может дать толк на отдельных тестовых примерах, но не убережет вас от sql-инъекций.
Разработчик внешнего приложения должен быть сурово наказан за то, что формирует запрос вот так:
$sql = "insert into table_name(name) value('".$str_param."')";
А его приложение должно быть исключено из продакшена, как содержащее уязвимость, позволяющее атаковать sql-инъекциями, до того как не будет внесен фикс такого плана во всех случаях (!!!), где приложение контактирует с СУБД, а не только в этом запросе:
$sql = "insert into table_name(name) value(:param1)"; //текст запроса с метками для вставки параметров;
$prep_sql = $sqlconnect->prepare($sql); //подготовка SQL-запроса, фактически, синтаксический разбор и выявление меток, куда вставлять параметры, проверка ошибок;
$prep_sql->bindParam('param1', $str_param, STRING_TYPE); //связываем параметры с метками в запросе, проверяем тип входного параметра;
$prep_sql->execute(); //выполняем запрос
PS: Последний пример написан на псевдокоде, но посыл должен быть понятен.