В очередной раз на грабли наступил.
В общем, получается так, что если в практической задаче уровнем повыше демонстрационного примера, надо использовать регулярные выражения, то через некоторое время простые регулярки становятся сложными, сложные еще сложнее и запутанее и уже весь этот трехэтажный набор закорючек и глючит и с трудом расшифровывается даже самим собой уже через несколько дней. И между прочим тормозит.
Плюешь и начинаешь просто честный парсер писать в этом месте. Не на регулярках.
Очередные грабли в том,что в двухэтажные и кое-как отлаженные регулярки надо еще добавить, что искомые выражения могут разрываться переводами строки. Ну к примеру, ищешь в качестве образца слово SPAN, а оно может оказаться и S\nPAN и S\n\PA\nN и короче после любого символа может оказаться перевод строки. Или несколько переводов строки.
Вообще переводы строк - это у меня как-то выходит больным местом в регулярках, вечно из-за них спотыкаешься.