Ten points if you can figure out why the below code doesn’t work as expected

$s = "$123,456.78";

if(preg_match("#^\$([,0-9]+)\.\d\d$#", $s, $matches) == 1)
{
    echo "It works!\n";
}

Yep, because I was using double quotes. PHP thought that ‘$’ meant the literal ‘$’ (as opposed to a variable substitution) not ‘$’ which was what I wanted to pass to preg_match.

I should have either escaped the back slash (’\$’) or just used single quotes (as they don’t support variable substitution).