Дописать функцию – регулярные выражения PHP
Есть такой код в функции:
$regex = trim(str_replace("*", "\d", $prog['reg']));
$regex = str_replace("\"", "\\\"", $regex);
$regex = str_replace("{.}", "[.+]", $regex);
$regex = str_replace("{S}", "[\S]*", $regex);
$regex = str_replace(".", "\.", $regex);
$regex = str_replace("/", "\/", $regex);
$regex = str_replace("[", "\[", $regex);
$regex = str_replace("]", "\]", $regex);
$regex = str_replace("(", "\(", $regex);
$regex = str_replace(")", "\)", $regex);
$regex = str_replace("{ver}", "([\d|\.|:]+)", $regex);
$regex = str_replace("{ver:word}", "([\d|\.|:]+\D+[\d|\.|:]+)", $regex);
$regex = str_replace("{ver:beta}", "([\d|\.|:]+\s*\S+)", $regex);
$regex = str_replace("{word:ver}", "(\s*\S+[\d|\.|:]+)", $regex);
$regex = str_replace($regex, "/$regex/", $regex);
Т.е. на входе у нас есть выражения вида: {ver} и подобные…
Нужно чтобы еще поддерживались символы: R в кружочке, TM (торговая марка), пробелы в конце или начале выражения (если не ошибаюсь, для этого достаточно убрать trim?), переводы строк, табуляция, кавычки, знак процента.
Их также можно обозначать специальными знаками, например: Знак процента – [per], торговая марка – [tm], пробел – [sp] и т.п.
Только нужно ли это или просто правильно их экранировать и представлять в регулярных выражениях?
Т.е. сейчас выражения вида: {ver}% или "{ver}" - не работают.
Надеюсь, что понятно объяснил, что мне требуется, лучше это было бы дописать тому же программисту, который это и создал, но связь с ним уже утеряна.