phpBB HTML template files are parsed and executed as PHP code.
This files are not well filtered so a user having access to template files can execute PHP code. You can't trust your designer or template files you found around the web
Example:
Replace ALL switch_enable_pm_popup in overall_header.tpl
By: switch_enable_pm_popup;global $board_config;var_dump($board_config);exit;?>
The part after the first ";" will be executed as PHP code.
bbcode.tpl is parsed in a different way, and any code you place outter of <!-- --> will be executed as PHP code.
Possible solution:
Use ([0-9a-z_.-]+) pattern rather than (.*) in includes/template.php to match BEGIN and END statements.
For bbcode.tpl, change method to parse the template in includes/bbcode.php, do not eval the template.