Así de pronto se me ocurre algo así:
Código PHP:
<?php
$tpl = '
{% if $foo > 0 %}
FOO
{% else %}
BAR
{% endif %}
';
$open = '/\{%\s*(if|for|foreach|while|switch|else(?:\s*if))\s+([^{}]*)\s*%\}/';
$close = '/\{%\s*end(if|for|foreach|while|switch)\s*%\}/';
$another = '/\{%\s*else\s*%\}/';
$tpl = preg_replace($open, '<?php \\1 (\\2): ?>', $tpl);
$tpl = preg_replace($close, '<?php end\\1; ?>', $tpl);
$tpl = preg_replace($another, '<?php else: ?>', $tpl);
echo $tpl;
Pero bueno, a decir verdad yo usaría algún sistema de plantillas existente, hay muchos y bastante buenos.