$1 -- первая группа <bef>
$2 -- вторая группа <c>
$3 -- вторая группа <aft>
Его надобно поотладить, типа условного before и after + разобраться с пробелами. Но начать можно с этого варианта.
Упд.:
Вероятно я слишком просто понял задачу, поэтому скорее мой вариант это не то. Думал надо просто const1 заменить пробелом и отправить в конец. А тут все сложнее. Но думаю и мой способ можно
под решение переделать.