That's built in to the PCRE code for PHP, and its not something that can be switched on or off. But the PHP developers have made some changes to that code in recent versions, so maybe PCRE behaved differently in older versions of PHP.
It boils down to that you can't do this anymore in patterns: (?P<1>pattern)(?P<2>pattern)
- You can't do that in Perl either
- Conflicts with capturing to an associative array (because you get two keys for each value, one key is the position (1, 2, etc) and the other key is the name)
The code should be changed to something like (?Ppattern)(?Ppattern)