Отправленный вами (неотредактированный) код отлично работает ... он соответствует и распечатывает ожидаемое сообщение.
Отредактированный код не работает, однако если вы слегка измените регулярное выражение, чтобы оно выглядело так:
Pattern p = Pattern.compile(
".*<row><column name='text'>(.*)</column></row>.*",
Pattern.DOTALL
);
вы получите совпадение:
Header
text</column></row><row><column name='pwd'>password
Это, вероятно, не то, что вы на самом деле хотите, так что вам нужно будет еще более усовершенствовать регулярное выражение. Использование регулярных выражений для обработки разбора xml / html, как правило, не очень хороший подход. Предложение Ишая использовать синтаксический анализатор XML - лучший способ сделать это, иначе вы, скорее всего, получите чрезвычайно сложное и негибкое регулярное выражение.