Не случайно, что это неправильный путь, так как я смог понять это двумя способами. Я уверен, что есть более изящный способ сделать это, но он подходит для моей области, так как я могу делать предположения о непосредственном родительском узле.
PCRE RegEx:
(<T n="key">32305<!--Key for X--><\/T>\n <U n="value">\n <T n="upper_bound">).*(<\/T>)
Подстановка:
$1NEW_VALUE_HERE$2
Он заменяет значение между двумя группами.
С помощью NotePad ++ RegEx я могу искать весь жестко закодированный текст, и, в моем случае, я могу предположить, что значение для узла, который я ищу, это 2-ди git число
<T n="key">32305<!--Key for X--></T>
<U n="value">
<T n="upper_bound">\d\d</T>
Заменить на:
<T n="key">32305<!--Key for X--></T>\n\t\t<U n="value">\n\t\t\t<T n="upper_bound">NEW_VALUE_HERE</T>
Надеюсь, это кому-нибудь поможет, и меня заинтересуют другие решения, кроме быстрого пренебрежительного комментария, с которым меня встретили.