Вот такая конструкция работает нормально Код (Text): {if условие} код1 {else} код2 {endif} Вот такая конструкция уже не пашет =( Код (Text): {if условие} код1 {if условие} код2 {else} код3 {endif} {else} код4 {endif} Вот основная функция извлечения PHP: public function Result($source) { $pattern = "/\{\s*if\s+(.*?)\}\s*(.*?)\{\s*endif\s*?\}\s*/is"; $result = preg_replace_callback($pattern, array($this, "ReplaceHandler"), $source); return $result; } Помогите составить правильный паттерн, плиз =)