1*22dc650dSSadaf Ebrahimi# This test is run only when JIT support is available. It checks JIT complete 2*22dc650dSSadaf Ebrahimi# and partial modes, and things that are different with JIT. 3*22dc650dSSadaf Ebrahimi 4*22dc650dSSadaf Ebrahimi#pattern jitverify 5*22dc650dSSadaf Ebrahimi 6*22dc650dSSadaf Ebrahimi# JIT does not support this pattern (callout at start of condition). 7*22dc650dSSadaf Ebrahimi 8*22dc650dSSadaf Ebrahimi/(?(?C1)(?=a)a)/I 9*22dc650dSSadaf EbrahimiJIT compilation was not successful (no more memory) 10*22dc650dSSadaf EbrahimiCapture group count = 0 11*22dc650dSSadaf EbrahimiMay match empty string 12*22dc650dSSadaf EbrahimiSubject length lower bound = 0 13*22dc650dSSadaf EbrahimiJIT compilation was not successful (no more memory) 14*22dc650dSSadaf Ebrahimi 15*22dc650dSSadaf Ebrahimi# The following pattern cannot be compiled by JIT. 16*22dc650dSSadaf Ebrahimi 17*22dc650dSSadaf Ebrahimi/b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*/I 18*22dc650dSSadaf EbrahimiJIT compilation was not successful (no more memory) 19*22dc650dSSadaf EbrahimiCapture group count = 0 20*22dc650dSSadaf EbrahimiMay match empty string 21*22dc650dSSadaf EbrahimiSubject length lower bound = 0 22*22dc650dSSadaf EbrahimiJIT compilation was not successful (no more memory) 23*22dc650dSSadaf Ebrahimi 24*22dc650dSSadaf Ebrahimi# Check that an infinite recursion loop is caught. 25*22dc650dSSadaf Ebrahimi 26*22dc650dSSadaf Ebrahimi/(?(R)a*(?1)|((?R))b)/ 27*22dc650dSSadaf Ebrahimi aaaabcde 28*22dc650dSSadaf EbrahimiFailed: error -46: JIT stack limit reached 29*22dc650dSSadaf Ebrahimi 30*22dc650dSSadaf Ebrahimi/abcd/I 31*22dc650dSSadaf EbrahimiCapture group count = 0 32*22dc650dSSadaf EbrahimiFirst code unit = 'a' 33*22dc650dSSadaf EbrahimiLast code unit = 'd' 34*22dc650dSSadaf EbrahimiSubject length lower bound = 4 35*22dc650dSSadaf EbrahimiJIT compilation was successful 36*22dc650dSSadaf Ebrahimi abcd 37*22dc650dSSadaf Ebrahimi 0: abcd (JIT) 38*22dc650dSSadaf Ebrahimi\= Expect no match 39*22dc650dSSadaf Ebrahimi xyz 40*22dc650dSSadaf EbrahimiNo match (JIT) 41*22dc650dSSadaf Ebrahimi 42*22dc650dSSadaf Ebrahimi/(*NO_JIT)abcd/I 43*22dc650dSSadaf EbrahimiCapture group count = 0 44*22dc650dSSadaf EbrahimiFirst code unit = 'a' 45*22dc650dSSadaf EbrahimiLast code unit = 'd' 46*22dc650dSSadaf EbrahimiSubject length lower bound = 4 47*22dc650dSSadaf EbrahimiJIT compilation was not successful 48*22dc650dSSadaf Ebrahimi abcd 49*22dc650dSSadaf Ebrahimi 0: abcd 50*22dc650dSSadaf Ebrahimi\= Expect no match 51*22dc650dSSadaf Ebrahimi xyz 52*22dc650dSSadaf EbrahimiNo match 53*22dc650dSSadaf Ebrahimi 54*22dc650dSSadaf Ebrahimi/abcd/ 55*22dc650dSSadaf Ebrahimi abcd 56*22dc650dSSadaf Ebrahimi 0: abcd (JIT) 57*22dc650dSSadaf Ebrahimi ab\=ps 58*22dc650dSSadaf EbrahimiPartial match: ab (JIT) 59*22dc650dSSadaf Ebrahimi ab\=ph 60*22dc650dSSadaf EbrahimiPartial match: ab (JIT) 61*22dc650dSSadaf Ebrahimi\= Expect no match 62*22dc650dSSadaf Ebrahimi xyz 63*22dc650dSSadaf EbrahimiNo match (JIT) 64*22dc650dSSadaf Ebrahimi 65*22dc650dSSadaf Ebrahimi/abcd/jitfast 66*22dc650dSSadaf Ebrahimi abcd 67*22dc650dSSadaf Ebrahimi 0: abcd (JIT) 68*22dc650dSSadaf Ebrahimi ab\=ps 69*22dc650dSSadaf EbrahimiPartial match: ab (JIT) 70*22dc650dSSadaf Ebrahimi ab\=ph 71*22dc650dSSadaf EbrahimiPartial match: ab (JIT) 72*22dc650dSSadaf Ebrahimi\= Expect no match 73*22dc650dSSadaf Ebrahimi xyz 74*22dc650dSSadaf EbrahimiNo match (JIT) 75*22dc650dSSadaf Ebrahimi 76*22dc650dSSadaf Ebrahimi/abcd/jit=1 77*22dc650dSSadaf Ebrahimi abcd 78*22dc650dSSadaf Ebrahimi 0: abcd (JIT) 79*22dc650dSSadaf Ebrahimi ab\=ps 80*22dc650dSSadaf EbrahimiPartial match: ab 81*22dc650dSSadaf Ebrahimi ab\=ph 82*22dc650dSSadaf EbrahimiPartial match: ab 83*22dc650dSSadaf Ebrahimi\= Expect no match 84*22dc650dSSadaf Ebrahimi xyz 85*22dc650dSSadaf EbrahimiNo match (JIT) 86*22dc650dSSadaf Ebrahimi xyz\=ps 87*22dc650dSSadaf EbrahimiNo match 88*22dc650dSSadaf Ebrahimi 89*22dc650dSSadaf Ebrahimi/abcd/jit=1,jitfast 90*22dc650dSSadaf Ebrahimi abcd 91*22dc650dSSadaf Ebrahimi 0: abcd (JIT) 92*22dc650dSSadaf Ebrahimi ab\=ps 93*22dc650dSSadaf EbrahimiFailed: error -45: bad JIT option 94*22dc650dSSadaf Ebrahimi ab\=ph 95*22dc650dSSadaf EbrahimiFailed: error -45: bad JIT option 96*22dc650dSSadaf Ebrahimi xyz\=ps 97*22dc650dSSadaf EbrahimiFailed: error -45: bad JIT option 98*22dc650dSSadaf Ebrahimi\= Expect no match 99*22dc650dSSadaf Ebrahimi xyz 100*22dc650dSSadaf EbrahimiNo match (JIT) 101*22dc650dSSadaf Ebrahimi 102*22dc650dSSadaf Ebrahimi/abcd/jit=2 103*22dc650dSSadaf Ebrahimi abcd 104*22dc650dSSadaf Ebrahimi 0: abcd 105*22dc650dSSadaf Ebrahimi ab\=ps 106*22dc650dSSadaf EbrahimiPartial match: ab (JIT) 107*22dc650dSSadaf Ebrahimi ab\=ph 108*22dc650dSSadaf EbrahimiPartial match: ab 109*22dc650dSSadaf Ebrahimi\= Expect no match 110*22dc650dSSadaf Ebrahimi xyz 111*22dc650dSSadaf EbrahimiNo match 112*22dc650dSSadaf Ebrahimi 113*22dc650dSSadaf Ebrahimi/abcd/jit=2,jitfast 114*22dc650dSSadaf Ebrahimi abcd 115*22dc650dSSadaf EbrahimiFailed: error -45: bad JIT option 116*22dc650dSSadaf Ebrahimi ab\=ps 117*22dc650dSSadaf EbrahimiPartial match: ab (JIT) 118*22dc650dSSadaf Ebrahimi ab\=ph 119*22dc650dSSadaf EbrahimiFailed: error -45: bad JIT option 120*22dc650dSSadaf Ebrahimi xyz 121*22dc650dSSadaf EbrahimiFailed: error -45: bad JIT option 122*22dc650dSSadaf Ebrahimi 123*22dc650dSSadaf Ebrahimi/abcd/jit=3 124*22dc650dSSadaf Ebrahimi abcd 125*22dc650dSSadaf Ebrahimi 0: abcd (JIT) 126*22dc650dSSadaf Ebrahimi ab\=ps 127*22dc650dSSadaf EbrahimiPartial match: ab (JIT) 128*22dc650dSSadaf Ebrahimi ab\=ph 129*22dc650dSSadaf EbrahimiPartial match: ab 130*22dc650dSSadaf Ebrahimi\= Expect no match 131*22dc650dSSadaf Ebrahimi xyz 132*22dc650dSSadaf EbrahimiNo match (JIT) 133*22dc650dSSadaf Ebrahimi 134*22dc650dSSadaf Ebrahimi/abcd/jit=4 135*22dc650dSSadaf Ebrahimi abcd 136*22dc650dSSadaf Ebrahimi 0: abcd 137*22dc650dSSadaf Ebrahimi ab\=ps 138*22dc650dSSadaf EbrahimiPartial match: ab 139*22dc650dSSadaf Ebrahimi ab\=ph 140*22dc650dSSadaf EbrahimiPartial match: ab (JIT) 141*22dc650dSSadaf Ebrahimi\= Expect no match 142*22dc650dSSadaf Ebrahimi xyz 143*22dc650dSSadaf EbrahimiNo match 144*22dc650dSSadaf Ebrahimi 145*22dc650dSSadaf Ebrahimi/abcd/jit=5 146*22dc650dSSadaf Ebrahimi abcd 147*22dc650dSSadaf Ebrahimi 0: abcd (JIT) 148*22dc650dSSadaf Ebrahimi ab\=ps 149*22dc650dSSadaf EbrahimiPartial match: ab 150*22dc650dSSadaf Ebrahimi ab\=ph 151*22dc650dSSadaf EbrahimiPartial match: ab (JIT) 152*22dc650dSSadaf Ebrahimi\= Expect no match 153*22dc650dSSadaf Ebrahimi xyz 154*22dc650dSSadaf EbrahimiNo match (JIT) 155*22dc650dSSadaf Ebrahimi 156*22dc650dSSadaf Ebrahimi/abcd/jit=6 157*22dc650dSSadaf Ebrahimi abcd 158*22dc650dSSadaf Ebrahimi 0: abcd 159*22dc650dSSadaf Ebrahimi ab\=ps 160*22dc650dSSadaf EbrahimiPartial match: ab (JIT) 161*22dc650dSSadaf Ebrahimi ab\=ph 162*22dc650dSSadaf EbrahimiPartial match: ab (JIT) 163*22dc650dSSadaf Ebrahimi\= Expect no match 164*22dc650dSSadaf Ebrahimi xyz 165*22dc650dSSadaf EbrahimiNo match 166*22dc650dSSadaf Ebrahimi 167*22dc650dSSadaf Ebrahimi/abcd/jit=7 168*22dc650dSSadaf Ebrahimi abcd 169*22dc650dSSadaf Ebrahimi 0: abcd (JIT) 170*22dc650dSSadaf Ebrahimi ab\=ps 171*22dc650dSSadaf EbrahimiPartial match: ab (JIT) 172*22dc650dSSadaf Ebrahimi ab\=ph 173*22dc650dSSadaf EbrahimiPartial match: ab (JIT) 174*22dc650dSSadaf Ebrahimi\= Expect no match 175*22dc650dSSadaf Ebrahimi xyz 176*22dc650dSSadaf EbrahimiNo match (JIT) 177*22dc650dSSadaf Ebrahimi 178*22dc650dSSadaf Ebrahimi/abcd/I,jit=2 179*22dc650dSSadaf EbrahimiCapture group count = 0 180*22dc650dSSadaf EbrahimiFirst code unit = 'a' 181*22dc650dSSadaf EbrahimiLast code unit = 'd' 182*22dc650dSSadaf EbrahimiSubject length lower bound = 4 183*22dc650dSSadaf EbrahimiJIT compilation was successful 184*22dc650dSSadaf Ebrahimi 185*22dc650dSSadaf Ebrahimi/(*NO_START_OPT)a(*:m)b/mark 186*22dc650dSSadaf Ebrahimi\= Expect no match 187*22dc650dSSadaf Ebrahimi a 188*22dc650dSSadaf EbrahimiNo match, mark = m (JIT) 189*22dc650dSSadaf Ebrahimi 190*22dc650dSSadaf Ebrahimi/^12345678abcd/m 191*22dc650dSSadaf Ebrahimi 12345678abcd 192*22dc650dSSadaf Ebrahimi 0: 12345678abcd (JIT) 193*22dc650dSSadaf Ebrahimi 194*22dc650dSSadaf Ebrahimi# Limits tests that give different output with JIT. 195*22dc650dSSadaf Ebrahimi 196*22dc650dSSadaf Ebrahimi/(a+)*zz/I 197*22dc650dSSadaf EbrahimiCapture group count = 1 198*22dc650dSSadaf EbrahimiStarting code units: a z 199*22dc650dSSadaf EbrahimiLast code unit = 'z' 200*22dc650dSSadaf EbrahimiSubject length lower bound = 2 201*22dc650dSSadaf EbrahimiJIT compilation was successful 202*22dc650dSSadaf Ebrahimi aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\=find_limits 203*22dc650dSSadaf EbrahimiMinimum match limit = 2 204*22dc650dSSadaf Ebrahimi 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz (JIT) 205*22dc650dSSadaf Ebrahimi 1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 206*22dc650dSSadaf Ebrahimi\= Expect no match 207*22dc650dSSadaf Ebrahimi aaaaaaaaaaaaaz\=find_limits 208*22dc650dSSadaf EbrahimiMinimum match limit = 16383 209*22dc650dSSadaf EbrahimiNo match (JIT) 210*22dc650dSSadaf Ebrahimi 211*22dc650dSSadaf Ebrahimi!((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)!I 212*22dc650dSSadaf EbrahimiCapture group count = 1 213*22dc650dSSadaf EbrahimiMay match empty string 214*22dc650dSSadaf EbrahimiSubject length lower bound = 0 215*22dc650dSSadaf EbrahimiJIT compilation was successful 216*22dc650dSSadaf Ebrahimi /* this is a C style comment */\=find_limits 217*22dc650dSSadaf EbrahimiMinimum match limit = 29 218*22dc650dSSadaf Ebrahimi 0: /* this is a C style comment */ (JIT) 219*22dc650dSSadaf Ebrahimi 1: /* this is a C style comment */ 220*22dc650dSSadaf Ebrahimi 221*22dc650dSSadaf Ebrahimi/^(?>a)++/ 222*22dc650dSSadaf Ebrahimi aa\=find_limits 223*22dc650dSSadaf EbrahimiMinimum match limit = 1 224*22dc650dSSadaf Ebrahimi 0: aa (JIT) 225*22dc650dSSadaf Ebrahimi aaaaaaaaa\=find_limits 226*22dc650dSSadaf EbrahimiMinimum match limit = 1 227*22dc650dSSadaf Ebrahimi 0: aaaaaaaaa (JIT) 228*22dc650dSSadaf Ebrahimi 229*22dc650dSSadaf Ebrahimi/(a)(?1)++/ 230*22dc650dSSadaf Ebrahimi aa\=find_limits 231*22dc650dSSadaf EbrahimiMinimum match limit = 1 232*22dc650dSSadaf Ebrahimi 0: aa (JIT) 233*22dc650dSSadaf Ebrahimi 1: a 234*22dc650dSSadaf Ebrahimi aaaaaaaaa\=find_limits 235*22dc650dSSadaf EbrahimiMinimum match limit = 1 236*22dc650dSSadaf Ebrahimi 0: aaaaaaaaa (JIT) 237*22dc650dSSadaf Ebrahimi 1: a 238*22dc650dSSadaf Ebrahimi 239*22dc650dSSadaf Ebrahimi/a(?:.)*?a/ims 240*22dc650dSSadaf Ebrahimi abbbbbbbbbbbbbbbbbbbbba\=find_limits 241*22dc650dSSadaf EbrahimiMinimum match limit = 22 242*22dc650dSSadaf Ebrahimi 0: abbbbbbbbbbbbbbbbbbbbba (JIT) 243*22dc650dSSadaf Ebrahimi 244*22dc650dSSadaf Ebrahimi/a(?:.(*THEN))*?a/ims 245*22dc650dSSadaf Ebrahimi abbbbbbbbbbbbbbbbbbbbba\=find_limits 246*22dc650dSSadaf EbrahimiMinimum match limit = 22 247*22dc650dSSadaf Ebrahimi 0: abbbbbbbbbbbbbbbbbbbbba (JIT) 248*22dc650dSSadaf Ebrahimi 249*22dc650dSSadaf Ebrahimi/a(?:.(*THEN:ABC))*?a/ims 250*22dc650dSSadaf Ebrahimi abbbbbbbbbbbbbbbbbbbbba\=find_limits 251*22dc650dSSadaf EbrahimiMinimum match limit = 22 252*22dc650dSSadaf Ebrahimi 0: abbbbbbbbbbbbbbbbbbbbba (JIT) 253*22dc650dSSadaf Ebrahimi 254*22dc650dSSadaf Ebrahimi/^(?>a+)(?>b+)(?>c+)(?>d+)(?>e+)/ 255*22dc650dSSadaf Ebrahimi aabbccddee\=find_limits 256*22dc650dSSadaf EbrahimiMinimum match limit = 5 257*22dc650dSSadaf Ebrahimi 0: aabbccddee (JIT) 258*22dc650dSSadaf Ebrahimi 259*22dc650dSSadaf Ebrahimi/^(?>(a+))(?>(b+))(?>(c+))(?>(d+))(?>(e+))/ 260*22dc650dSSadaf Ebrahimi aabbccddee\=find_limits 261*22dc650dSSadaf EbrahimiMinimum match limit = 5 262*22dc650dSSadaf Ebrahimi 0: aabbccddee (JIT) 263*22dc650dSSadaf Ebrahimi 1: aa 264*22dc650dSSadaf Ebrahimi 2: bb 265*22dc650dSSadaf Ebrahimi 3: cc 266*22dc650dSSadaf Ebrahimi 4: dd 267*22dc650dSSadaf Ebrahimi 5: ee 268*22dc650dSSadaf Ebrahimi 269*22dc650dSSadaf Ebrahimi/^(?>(a+))(?>b+)(?>(c+))(?>d+)(?>(e+))/ 270*22dc650dSSadaf Ebrahimi aabbccddee\=find_limits 271*22dc650dSSadaf EbrahimiMinimum match limit = 5 272*22dc650dSSadaf Ebrahimi 0: aabbccddee (JIT) 273*22dc650dSSadaf Ebrahimi 1: aa 274*22dc650dSSadaf Ebrahimi 2: cc 275*22dc650dSSadaf Ebrahimi 3: ee 276*22dc650dSSadaf Ebrahimi 277*22dc650dSSadaf Ebrahimi/^(?>(a+))(?>b+)(?>(c+))(?>d+)(?>(e+))/jitfast 278*22dc650dSSadaf Ebrahimi aabbccddee\=find_limits 279*22dc650dSSadaf EbrahimiMinimum match limit = 5 280*22dc650dSSadaf Ebrahimi 0: aabbccddee (JIT) 281*22dc650dSSadaf Ebrahimi 1: aa 282*22dc650dSSadaf Ebrahimi 2: cc 283*22dc650dSSadaf Ebrahimi 3: ee 284*22dc650dSSadaf Ebrahimi aabbccddee\=jitstack=1 285*22dc650dSSadaf Ebrahimi 0: aabbccddee (JIT) 286*22dc650dSSadaf Ebrahimi 1: aa 287*22dc650dSSadaf Ebrahimi 2: cc 288*22dc650dSSadaf Ebrahimi 3: ee 289*22dc650dSSadaf Ebrahimi 290*22dc650dSSadaf Ebrahimi/(a+)*zz/ 291*22dc650dSSadaf Ebrahimi\= Expect no match 292*22dc650dSSadaf Ebrahimi aaaaaaaaaaaaaz 293*22dc650dSSadaf EbrahimiNo match (JIT) 294*22dc650dSSadaf Ebrahimi\= Expect limit exceeded 295*22dc650dSSadaf Ebrahimi aaaaaaaaaaaaaz\=match_limit=3000 296*22dc650dSSadaf EbrahimiFailed: error -47: match limit exceeded 297*22dc650dSSadaf Ebrahimi 298*22dc650dSSadaf Ebrahimi/(*LIMIT_MATCH=3000)(a+)*zz/I 299*22dc650dSSadaf EbrahimiCapture group count = 1 300*22dc650dSSadaf EbrahimiMatch limit = 3000 301*22dc650dSSadaf EbrahimiStarting code units: a z 302*22dc650dSSadaf EbrahimiLast code unit = 'z' 303*22dc650dSSadaf EbrahimiSubject length lower bound = 2 304*22dc650dSSadaf EbrahimiJIT compilation was successful 305*22dc650dSSadaf Ebrahimi\= Expect limit exceeded 306*22dc650dSSadaf Ebrahimi aaaaaaaaaaaaaz 307*22dc650dSSadaf EbrahimiFailed: error -47: match limit exceeded 308*22dc650dSSadaf Ebrahimi\= Expect limit exceeded 309*22dc650dSSadaf Ebrahimi aaaaaaaaaaaaaz\=match_limit=60000 310*22dc650dSSadaf EbrahimiFailed: error -47: match limit exceeded 311*22dc650dSSadaf Ebrahimi 312*22dc650dSSadaf Ebrahimi/(*LIMIT_MATCH=60000)(*LIMIT_MATCH=3000)(a+)*zz/I 313*22dc650dSSadaf EbrahimiCapture group count = 1 314*22dc650dSSadaf EbrahimiMatch limit = 3000 315*22dc650dSSadaf EbrahimiStarting code units: a z 316*22dc650dSSadaf EbrahimiLast code unit = 'z' 317*22dc650dSSadaf EbrahimiSubject length lower bound = 2 318*22dc650dSSadaf EbrahimiJIT compilation was successful 319*22dc650dSSadaf Ebrahimi\= Expect limit exceeded 320*22dc650dSSadaf Ebrahimi aaaaaaaaaaaaaz 321*22dc650dSSadaf EbrahimiFailed: error -47: match limit exceeded 322*22dc650dSSadaf Ebrahimi 323*22dc650dSSadaf Ebrahimi/(*LIMIT_MATCH=60000)(a+)*zz/I 324*22dc650dSSadaf EbrahimiCapture group count = 1 325*22dc650dSSadaf EbrahimiMatch limit = 60000 326*22dc650dSSadaf EbrahimiStarting code units: a z 327*22dc650dSSadaf EbrahimiLast code unit = 'z' 328*22dc650dSSadaf EbrahimiSubject length lower bound = 2 329*22dc650dSSadaf EbrahimiJIT compilation was successful 330*22dc650dSSadaf Ebrahimi\= Expect no match 331*22dc650dSSadaf Ebrahimi aaaaaaaaaaaaaz 332*22dc650dSSadaf EbrahimiNo match (JIT) 333*22dc650dSSadaf Ebrahimi\= Expect limit exceeded 334*22dc650dSSadaf Ebrahimi aaaaaaaaaaaaaz\=match_limit=3000 335*22dc650dSSadaf EbrahimiFailed: error -47: match limit exceeded 336*22dc650dSSadaf Ebrahimi 337*22dc650dSSadaf Ebrahimi# These three have infinitely nested recursions. 338*22dc650dSSadaf Ebrahimi 339*22dc650dSSadaf Ebrahimi/((?2))((?1))/ 340*22dc650dSSadaf Ebrahimi\= Expect JIT stack limit reached 341*22dc650dSSadaf Ebrahimi abc 342*22dc650dSSadaf EbrahimiFailed: error -46: JIT stack limit reached 343*22dc650dSSadaf Ebrahimi 344*22dc650dSSadaf Ebrahimi/((?(R2)a+|(?1)b))()/ 345*22dc650dSSadaf Ebrahimi\= Expect JIT stack limit reached 346*22dc650dSSadaf Ebrahimi aaaabcde 347*22dc650dSSadaf EbrahimiFailed: error -46: JIT stack limit reached 348*22dc650dSSadaf Ebrahimi 349*22dc650dSSadaf Ebrahimi/(?(R)a*(?1)|((?R))b)/ 350*22dc650dSSadaf Ebrahimi\= Expect JIT stack limit reached 351*22dc650dSSadaf Ebrahimi aaaabcde 352*22dc650dSSadaf EbrahimiFailed: error -46: JIT stack limit reached 353*22dc650dSSadaf Ebrahimi 354*22dc650dSSadaf Ebrahimi# Invalid options disable JIT when called via pcre2_match(), causing the 355*22dc650dSSadaf Ebrahimi# match to happen via the interpreter, but for fast JIT invalid options are 356*22dc650dSSadaf Ebrahimi# ignored, so an unanchored match happens. 357*22dc650dSSadaf Ebrahimi 358*22dc650dSSadaf Ebrahimi/abcd/ 359*22dc650dSSadaf Ebrahimi abcd\=anchored 360*22dc650dSSadaf Ebrahimi 0: abcd 361*22dc650dSSadaf Ebrahimi\= Expect no match 362*22dc650dSSadaf Ebrahimi fail abcd\=anchored 363*22dc650dSSadaf EbrahimiNo match 364*22dc650dSSadaf Ebrahimi 365*22dc650dSSadaf Ebrahimi/abcd/jitfast 366*22dc650dSSadaf Ebrahimi abcd\=anchored 367*22dc650dSSadaf Ebrahimi 0: abcd (JIT) 368*22dc650dSSadaf Ebrahimi succeed abcd\=anchored 369*22dc650dSSadaf Ebrahimi 0: abcd (JIT) 370*22dc650dSSadaf Ebrahimi 371*22dc650dSSadaf Ebrahimi# Push/pop does not lose the JIT information, though jitverify applies only to 372*22dc650dSSadaf Ebrahimi# compilation, but serializing (save/load) discards JIT data completely. 373*22dc650dSSadaf Ebrahimi 374*22dc650dSSadaf Ebrahimi/^abc\Kdef/info,push 375*22dc650dSSadaf Ebrahimi** Applies only to compile when pattern is stacked with 'push': jitverify 376*22dc650dSSadaf EbrahimiCapture group count = 0 377*22dc650dSSadaf EbrahimiCompile options: <none> 378*22dc650dSSadaf EbrahimiOverall options: anchored 379*22dc650dSSadaf EbrahimiFirst code unit = 'a' 380*22dc650dSSadaf EbrahimiSubject length lower bound = 6 381*22dc650dSSadaf EbrahimiJIT compilation was successful 382*22dc650dSSadaf Ebrahimi#pop jitverify 383*22dc650dSSadaf Ebrahimi abcdef 384*22dc650dSSadaf Ebrahimi 0: def (JIT) 385*22dc650dSSadaf Ebrahimi 386*22dc650dSSadaf Ebrahimi/^abc\Kdef/info,push 387*22dc650dSSadaf Ebrahimi** Applies only to compile when pattern is stacked with 'push': jitverify 388*22dc650dSSadaf EbrahimiCapture group count = 0 389*22dc650dSSadaf EbrahimiCompile options: <none> 390*22dc650dSSadaf EbrahimiOverall options: anchored 391*22dc650dSSadaf EbrahimiFirst code unit = 'a' 392*22dc650dSSadaf EbrahimiSubject length lower bound = 6 393*22dc650dSSadaf EbrahimiJIT compilation was successful 394*22dc650dSSadaf Ebrahimi#save testsaved1 395*22dc650dSSadaf Ebrahimi#load testsaved1 396*22dc650dSSadaf Ebrahimi#pop jitverify 397*22dc650dSSadaf Ebrahimi abcdef 398*22dc650dSSadaf Ebrahimi 0: def 399*22dc650dSSadaf Ebrahimi 400*22dc650dSSadaf Ebrahimi#load testsaved1 401*22dc650dSSadaf Ebrahimi#pop jit,jitverify 402*22dc650dSSadaf Ebrahimi abcdef 403*22dc650dSSadaf Ebrahimi 0: def (JIT) 404*22dc650dSSadaf Ebrahimi 405*22dc650dSSadaf Ebrahimi/abcd/pushcopy,jitverify 406*22dc650dSSadaf Ebrahimi** Applies only to compile when pattern is stacked with 'push': jitverify 407*22dc650dSSadaf Ebrahimi abcd 408*22dc650dSSadaf Ebrahimi 0: abcd (JIT) 409*22dc650dSSadaf Ebrahimi 410*22dc650dSSadaf Ebrahimi#pop jitverify 411*22dc650dSSadaf Ebrahimi abcd 412*22dc650dSSadaf Ebrahimi 0: abcd 413*22dc650dSSadaf Ebrahimi 414*22dc650dSSadaf Ebrahimi# Test pattern compilation 415*22dc650dSSadaf Ebrahimi 416*22dc650dSSadaf Ebrahimi/(?:a|b|c|d|e)(?R)/jit=1 417*22dc650dSSadaf Ebrahimi 418*22dc650dSSadaf Ebrahimi/(?:a|b|c|d|e)(?R)(?R)/jit=1 419*22dc650dSSadaf Ebrahimi 420*22dc650dSSadaf Ebrahimi/(a(?:a|b|c|d|e)b){8,16}/jit=1 421*22dc650dSSadaf Ebrahimi 422*22dc650dSSadaf Ebrahimi/(?:|a|){100}x/jit=1 423*22dc650dSSadaf Ebrahimi 424*22dc650dSSadaf Ebrahimi# These tests provoke recursion loops, which give a different error message 425*22dc650dSSadaf Ebrahimi# when JIT is used. 426*22dc650dSSadaf Ebrahimi 427*22dc650dSSadaf Ebrahimi/(?R)/I 428*22dc650dSSadaf EbrahimiCapture group count = 0 429*22dc650dSSadaf EbrahimiMay match empty string 430*22dc650dSSadaf EbrahimiSubject length lower bound = 0 431*22dc650dSSadaf EbrahimiJIT compilation was successful 432*22dc650dSSadaf Ebrahimi abcd 433*22dc650dSSadaf EbrahimiFailed: error -46: JIT stack limit reached 434*22dc650dSSadaf Ebrahimi 435*22dc650dSSadaf Ebrahimi/(a|(?R))/I 436*22dc650dSSadaf EbrahimiCapture group count = 1 437*22dc650dSSadaf EbrahimiMay match empty string 438*22dc650dSSadaf EbrahimiSubject length lower bound = 0 439*22dc650dSSadaf EbrahimiJIT compilation was successful 440*22dc650dSSadaf Ebrahimi abcd 441*22dc650dSSadaf Ebrahimi 0: a (JIT) 442*22dc650dSSadaf Ebrahimi 1: a 443*22dc650dSSadaf Ebrahimi defg 444*22dc650dSSadaf EbrahimiFailed: error -46: JIT stack limit reached 445*22dc650dSSadaf Ebrahimi 446*22dc650dSSadaf Ebrahimi/(ab|(bc|(de|(?R))))/I 447*22dc650dSSadaf EbrahimiCapture group count = 3 448*22dc650dSSadaf EbrahimiMay match empty string 449*22dc650dSSadaf EbrahimiSubject length lower bound = 0 450*22dc650dSSadaf EbrahimiJIT compilation was successful 451*22dc650dSSadaf Ebrahimi abcd 452*22dc650dSSadaf Ebrahimi 0: ab (JIT) 453*22dc650dSSadaf Ebrahimi 1: ab 454*22dc650dSSadaf Ebrahimi fghi 455*22dc650dSSadaf EbrahimiFailed: error -46: JIT stack limit reached 456*22dc650dSSadaf Ebrahimi 457*22dc650dSSadaf Ebrahimi/(ab|(bc|(de|(?1))))/I 458*22dc650dSSadaf EbrahimiCapture group count = 3 459*22dc650dSSadaf EbrahimiMay match empty string 460*22dc650dSSadaf EbrahimiSubject length lower bound = 0 461*22dc650dSSadaf EbrahimiJIT compilation was successful 462*22dc650dSSadaf Ebrahimi abcd 463*22dc650dSSadaf Ebrahimi 0: ab (JIT) 464*22dc650dSSadaf Ebrahimi 1: ab 465*22dc650dSSadaf Ebrahimi fghi 466*22dc650dSSadaf EbrahimiFailed: error -46: JIT stack limit reached 467*22dc650dSSadaf Ebrahimi 468*22dc650dSSadaf Ebrahimi/x(ab|(bc|(de|(?1)x)x)x)/I 469*22dc650dSSadaf EbrahimiCapture group count = 3 470*22dc650dSSadaf EbrahimiFirst code unit = 'x' 471*22dc650dSSadaf EbrahimiSubject length lower bound = 3 472*22dc650dSSadaf EbrahimiJIT compilation was successful 473*22dc650dSSadaf Ebrahimi xab123 474*22dc650dSSadaf Ebrahimi 0: xab (JIT) 475*22dc650dSSadaf Ebrahimi 1: ab 476*22dc650dSSadaf Ebrahimi xfghi 477*22dc650dSSadaf EbrahimiFailed: error -46: JIT stack limit reached 478*22dc650dSSadaf Ebrahimi 479*22dc650dSSadaf Ebrahimi/(?!\w)(?R)/ 480*22dc650dSSadaf Ebrahimi abcd 481*22dc650dSSadaf EbrahimiFailed: error -46: JIT stack limit reached 482*22dc650dSSadaf Ebrahimi =abc 483*22dc650dSSadaf EbrahimiFailed: error -46: JIT stack limit reached 484*22dc650dSSadaf Ebrahimi 485*22dc650dSSadaf Ebrahimi/(?=\w)(?R)/ 486*22dc650dSSadaf Ebrahimi =abc 487*22dc650dSSadaf EbrahimiFailed: error -46: JIT stack limit reached 488*22dc650dSSadaf Ebrahimi abcd 489*22dc650dSSadaf EbrahimiFailed: error -46: JIT stack limit reached 490*22dc650dSSadaf Ebrahimi 491*22dc650dSSadaf Ebrahimi/(?<!\w)(?R)/ 492*22dc650dSSadaf Ebrahimi abcd 493*22dc650dSSadaf EbrahimiFailed: error -46: JIT stack limit reached 494*22dc650dSSadaf Ebrahimi 495*22dc650dSSadaf Ebrahimi/(?<=\w)(?R)/ 496*22dc650dSSadaf Ebrahimi abcd 497*22dc650dSSadaf EbrahimiFailed: error -46: JIT stack limit reached 498*22dc650dSSadaf Ebrahimi 499*22dc650dSSadaf Ebrahimi/(a+|(?R)b)/ 500*22dc650dSSadaf Ebrahimi aaa 501*22dc650dSSadaf Ebrahimi 0: aaa (JIT) 502*22dc650dSSadaf Ebrahimi 1: aaa 503*22dc650dSSadaf Ebrahimi bbb 504*22dc650dSSadaf EbrahimiFailed: error -46: JIT stack limit reached 505*22dc650dSSadaf Ebrahimi 506*22dc650dSSadaf Ebrahimi/[^\xff]((?1))/BI 507*22dc650dSSadaf Ebrahimi------------------------------------------------------------------ 508*22dc650dSSadaf Ebrahimi Bra 509*22dc650dSSadaf Ebrahimi [^\x{ff}] 510*22dc650dSSadaf Ebrahimi CBra 1 511*22dc650dSSadaf Ebrahimi Recurse 512*22dc650dSSadaf Ebrahimi Ket 513*22dc650dSSadaf Ebrahimi Ket 514*22dc650dSSadaf Ebrahimi End 515*22dc650dSSadaf Ebrahimi------------------------------------------------------------------ 516*22dc650dSSadaf EbrahimiCapture group count = 1 517*22dc650dSSadaf EbrahimiSubject length lower bound = 1 518*22dc650dSSadaf EbrahimiJIT compilation was successful 519*22dc650dSSadaf Ebrahimi abcd 520*22dc650dSSadaf EbrahimiFailed: error -46: JIT stack limit reached 521*22dc650dSSadaf Ebrahimi 522*22dc650dSSadaf Ebrahimi/(x(?1)){4}/ 523*22dc650dSSadaf Ebrahimi 524*22dc650dSSadaf Ebrahimi/[axm]{7}/ 525*22dc650dSSadaf Ebrahimi 526*22dc650dSSadaf Ebrahimi/(.|.)*?bx/ 527*22dc650dSSadaf Ebrahimi\= Expect limit exceeded 528*22dc650dSSadaf Ebrahimi aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabax\=match_limit=10000000 529*22dc650dSSadaf EbrahimiFailed: error -47: match limit exceeded 530*22dc650dSSadaf Ebrahimi 531*22dc650dSSadaf Ebrahimi# Test JIT disable 532*22dc650dSSadaf Ebrahimi 533*22dc650dSSadaf Ebrahimi/abc/ 534*22dc650dSSadaf Ebrahimi abc 535*22dc650dSSadaf Ebrahimi 0: abc (JIT) 536*22dc650dSSadaf Ebrahimi abc\=no_jit 537*22dc650dSSadaf Ebrahimi 0: abc 538*22dc650dSSadaf Ebrahimi 539*22dc650dSSadaf Ebrahimi/abc/jitfast 540*22dc650dSSadaf Ebrahimi abc 541*22dc650dSSadaf Ebrahimi 0: abc (JIT) 542*22dc650dSSadaf Ebrahimi abc\=no_jit 543*22dc650dSSadaf Ebrahimi 0: abc (JIT) 544*22dc650dSSadaf Ebrahimi 545*22dc650dSSadaf Ebrahimi# ---- 546*22dc650dSSadaf Ebrahimi 547*22dc650dSSadaf Ebrahimi/[aC]/mg,firstline,newline=lf 548*22dc650dSSadaf Ebrahimi match\nmatch 549*22dc650dSSadaf Ebrahimi 0: a (JIT) 550*22dc650dSSadaf Ebrahimi 551*22dc650dSSadaf Ebrahimi/[aCz]/mg,firstline,newline=lf 552*22dc650dSSadaf Ebrahimi match\nmatch 553*22dc650dSSadaf Ebrahimi 0: a (JIT) 554*22dc650dSSadaf Ebrahimi 555*22dc650dSSadaf Ebrahimi//jit 556*22dc650dSSadaf Ebrahimi \=null_subject 557*22dc650dSSadaf Ebrahimi 0: (JIT) 558*22dc650dSSadaf Ebrahimi 559*22dc650dSSadaf Ebrahimi/(.)(.)/jitfast,replace=$2+$1 560*22dc650dSSadaf Ebrahimi ABCD 561*22dc650dSSadaf Ebrahimi 1: B+ACD 562*22dc650dSSadaf Ebrahimi 563*22dc650dSSadaf Ebrahimi/(...)-(...)/jitfast 564*22dc650dSSadaf Ebrahimi abc-xyz\=get=2 565*22dc650dSSadaf Ebrahimi 0: abc-xyz (JIT) 566*22dc650dSSadaf Ebrahimi 1: abc 567*22dc650dSSadaf Ebrahimi 2: xyz 568*22dc650dSSadaf Ebrahimi 2G xyz (3) 569*22dc650dSSadaf Ebrahimi 570*22dc650dSSadaf Ebrahimi# End of testinput17 571