The unexpected dangers of preg_replace()
bitquark.co.uk