Как добавить замену на группу Matcher вместо всего шаблона?

Я используюwhile(matcher.find()) перебрать все совпадения паттерна. Для каждого экземпляра или совпадения найденного шаблона я хочу заменитьmatcher.group(3) с некоторым новым текстом. Этот текст будет отличаться для каждого, поэтому я используюmatcher.appendReplacement() перестроить исходную строку с новыми изменениями по мере прохождения. Тем не мение,appendReplacement() заменяет весь шаблон вместо только группы.

Как я могу сделать это, но изменить только третью группу матча, а не весь шаблон?

Вот пример кода:

Pattern pattern = Pattern.compile("THE (REGEX) (EXPRESSION) (WITH MULTIPLE) GROUPS");
Matcher matcher = pattern.matcher("THE TEXT TO SEARCH AND MODIFY");
StringBuffer buffer = new StringBuffer();

while(matcher.find()){
   matcher.appendReplacement(buffer, processTheGroup(matcher.group(3));
}

но я хотел бы сделать что-то вроде этого (очевидно, это не работает).

...
while(matcher.find()){
   matcher.group(3).appendReplacement(buffer, processTheGroup(matcher.group(3));
}

Нечто подобное, где он заменяет только определенную группу, а не весь шаблон.

РЕДАКТИРОВАТЬ: изменил пример регулярного выражения, чтобы показать, что не все шаблоны сгруппированы.

Ответы на вопрос(2)

Ваш ответ на вопрос