Strange PHP 5.1 bug with string literals
PHP 5.1 will attempt to parse the string literal passed in as the replacement before preg_replace() does its thing; PHP 5.2 seemingly does not.
"$1zes" will break in PHP 5.1 because $ is not properly escaped. PHP 5.2, for whatever reason (anyone have any ideas?) will not complain if the back reference $1 doesn’t have its $ escaped.
Go figure.