https://bugs.php.net/bug.php?id=60986
https://github.com/php/php-src/commit/0f6e3408db4d8fd96e24459389b06dc7a6e40ee2
https://github.com/php/php-src/commit/4ecfa5abf5d5cb47677565808bdd15dfb25e39b5
--- a/ext/pcre/php_pcre.c.orig	2010-01-03 03:23:27.000000000 -0600
+++ b/ext/pcre/php_pcre.c	2012-05-12 12:28:32.000000000 -0500
@@ -241,6 +241,7 @@
 	char				*pattern;
 	int					 do_study = 0;
 	int					 poptions = 0;
+	int				count = 0;
 	unsigned const char *tables = NULL;
 #if HAVE_SETLOCALE
 	char				*locale = setlocale(LC_CTYPE, NULL);
@@ -253,10 +254,10 @@
 	regex_len = strlen(regex);
 	if (zend_hash_find(&PCRE_G(pcre_cache), regex, regex_len+1, (void **)&pce) == SUCCESS) {
 		/*
-		 * We use a quick pcre_info() check to see whether cache is corrupted, and if it
+		 * We use a quick pcre_fullinfo() check to see whether cache is corrupted, and if it
 		 * is, we flush it and compile the pattern from scratch.
 		 */
-		if (pcre_info(pce->re, NULL, NULL) == PCRE_ERROR_BADMAGIC) {
+		if (pcre_fullinfo(pce->re, NULL, PCRE_INFO_CAPTURECOUNT, &count) == PCRE_ERROR_BADMAGIC) {
 			zend_hash_clean(&PCRE_G(pcre_cache));
 		} else {
 #if HAVE_SETLOCALE
--- a/ext/pcre/php_pcre.def.orig	2007-02-26 06:38:34.000000000 -0600
+++ b/ext/pcre/php_pcre.def	2012-05-12 12:28:28.000000000 -0500
@@ -4,7 +4,6 @@
 php_pcre_exec
 php_pcre_get_substring
 php_pcre_get_substring_list
-php_pcre_info
 php_pcre_maketables
 php_pcre_study
 php_pcre_version
--- a/main/php_compat.h.orig	2010-01-03 03:23:27.000000000 -0600
+++ b/main/php_compat.h	2012-05-12 12:28:28.000000000 -0500
@@ -34,7 +34,6 @@
 #define pcre_exec			php_pcre_exec
 #define pcre_get_substring		php_pcre_get_substring
 #define pcre_get_substring_list		php_pcre_get_substring_list
-#define pcre_info			php_pcre_info
 #define pcre_maketables			php_pcre_maketables
 #define pcre_study			php_pcre_study
 #define pcre_version			php_pcre_version
