Как правильно регулярно выразиться?
Добавьте модификтор s (считать весь текст одной строкой) и выключите «жадность» модификатора "+" (обратите внимание на знак вопроса после "+"):
#<\?(.+?)\?>#s
Я ничего не знаю о регулярках в php, но разве там нет символа, обозначающего конец строки? В питончике, перле, _еще куча названий_ — это "$"