in src/main/java/org/apache/commons/text/TextStringBuilder.java [2883:2902]
private TextStringBuilder replaceImpl(final StringMatcher matcher, final String replaceStr, final int from, int to,
int replaceCount) {
if (matcher == null || size == 0) {
return this;
}
final int replaceLen = replaceStr == null ? 0 : replaceStr.length();
for (int i = from; i < to && replaceCount != 0; i++) {
final char[] buf = buffer;
final int removeLen = matcher.isMatch(buf, i, from, to);
if (removeLen > 0) {
replaceImpl(i, i + removeLen, removeLen, replaceStr, replaceLen);
to = to - removeLen + replaceLen;
i = i + replaceLen - 1;
if (replaceCount > 0) {
replaceCount--;
}
}
}
return this;
}