ок, все, это решение
std::string s ("ABCDE");
std::regex e ("(.)(?!$)");
std::cout << std::regex_replace (s,e,"$1|");
вывод:
A|B|C|D|E
thx Кэри Свовеланд, я привык (?!. $), И это не сработало, потому чтоРаньше я ".",Увидев ваш скрипт, я понял ошибку, очевидно, она также работает с ([AZ])