Escaping the pattern fixes the problem

PHP 5.5 requires the hyphen to be escaped or moved to the end of the list if you want it to match a literal hyphen.