у меня на одном тестовом задании попросили оптимизировать цепочку реплейсов, компанию не помню, правда. я решал с помощью мапы. кстати, ключевой момент: начиная с 9-ой жавы, можно вторым параметром реплейсОлл воткнуть лямбду, параметром которой будет последняя найденная группа. у меня требовалась 8-ая, поэтому это не прокатило и пришлось извращаться. может, у вас обратная ситуация? :)