@chagold לפי הבנתי, השגיאה נובעת שוב מתחביר שגוי.
לדעתי השגיאה נובעת מהגדרות ברירת מחדל של הספריה PCRE שנועדו ע"מ להגביל את השימוש בזיכרון או את זמן החישוב.
PCRE משתמש בפונקצייה match() וקורא לה בצורה רקורסיבית, ע"מ שלא תרוץ רקורסיה אין סופית, קבעו את הגבול match_limit שמגבילה את מספר הקריאות של הפונקציה. כמו את מגבלת הרקורסיה, גם כאן ניתן לשנות את המגבלה. כברירת מחדל הוא מוגבל ל10 מיליון קריאות וניתן לשנות אותה באמצעות הפונקצייה pcre_exec().
אבל כמו שכתבתי קודם, לשנות את המגבלה זה לא פיתרון, מגבלות הברירת מחדל לא קיימות סתם. אני מציע לבדוק שוב את התחביר ע"מ לאתר את שורש הבעיה.
יתכן שהבעיה קיימת מסיבות אחרות, ולאו דווקא בגלל הPCRE, אבל הבעיה זהה..