Насколько я вижу, в постановке задачи речь идет не о регулярных выражениях, а о последовательной замене. Как "зарядка для ума" описанный метод подойдет. Но лично я бы просто написал 3 последовательных замены
X++:
str strName;
strName = custTable.Name;
strName = global::strReplace(strName, '\"', '`');
strName = global::strReplace(strName, '\'', '`');
strName = global::strReplace(strName, '&', '_');
Не вижу никакого практического смысла "вытягивать" команду замены в одну строку. И редактировать сложно и сама задача довольно специфическая. Я бы сказал, не очевидная.
Если так уж хочется написать посимвольную замену, то имеет смысл не использовать существующий метод global::strReplace(), а написать свой собственный, где в качестве параметра передаются две строки с наборами символов. Не замена текста на текст, а замена каждого символа из первого параметра на соответствующий символ из второго.
Чтобы было понятно о чем речь, есть функция ChrTran в FoxPro. Вот ее описание
https://msdn.microsoft.com/en-us/lib...(v=vs.71).aspx
Написать ее аналог в X++, думаю, будет не очень сложно