Do your files have any spacing or indentation? That could cause your regex not to work.
Your regex will match this
<?
But it won't match any of these because of the spacing.
<?
<?
<?
If you want a regex that allows for spaces and indents try this
^\s*<\?\s*$
Rob
2009-08-09 02:05:58