Nelle versioni di PHP 5.2.x e successive può capitare di trovare NULL come risultato di un'espressione regolare (preg_replace, preg_match, ecc...) applicata a stringhe molto lunghe. Questo problema è dovuto ad un limite troppo restrittivo nella direttiva pcre.backtrack_limit. Il valore di default è 100000, quindi riesce a gestire stringhe lunghe fino a 100000 caratteri. È opportuno aumentare questo limite, all'occorrenza anche a 20MB. Analoga modifica può essere fatta per la direttiva pcre.recursion_limit.
Le modifiche possono essere fatte nel file php.ini:
pcre.backtrack_limit=20971520
pcre.recursion_limit=20971520
oppure tramite ini_set():
ini_set('pcre.backtrack_limit', 20971520);
ini_set('pcre.recursion_limit', 20971520);
