С другими символами получилось. Изменил регулярку с
reg = reg.match(/(\{[^}]+?\})|(\+)|([()])|(\d)|(\s+)/g);
на
reg = reg.match( /(\{[^}]+?\})|(.)/g );
Теперь из 000.000,000a000 возвращает массив какой нужно:
["0", "0", "0", ".", "0", "0", "0", ",", "0", "0", "0", "a", "0", "0", "0"]
Но сейчас попробовал регулярку с вложенными фигурными скобками. Эта регулярка просто проверяет корректность российского почтового индекса.
let reg = '{/^[1-6]\d{0,5}$/}';
возвращает
[/^[1-6]d{0,/, "$", "/", "}"]
А нужно, чтобы вернул массив, содержащий 1 элемент:
[ /^[1-6]\d{0,5}$/ ]
Прошу прощения, может я выбрал как разделитель не тот символ. Может надо было вместо фигурных скобок использовать что-то другое, чтобы не было конфликтов.