В очередной раз прошелся по граблям.
Реальные программы получается, что надо считать как единую строку с символами перевода строк. Иначе факапы практически неизбежны.
Чуть менее, чем всегда оказывается, что вот напишешь ты, например, построчное чтение чего-то и обработку строки, ну там регэкспами допустим что-то распарсить и поменять. По быстренькому так, просто и элегантно.
А потом хренак и оказывается на практических данных, что надо было учитывать, что часть регэкспа на разных строках находится. Даже если это казалось бы невозможно было. Ну да, фактически ошибка в исходных данных, можно в Спортлото или на ЛОР жаловаться =) Но работать оно все-равно должно и вот так оно.
Проще сразу это делать.