A ver como lo explico. Empezare por un texto ejemplo.
Código HTML:
Ver original
Usando el siguiente patrón me detecta bien lo que quiero.
Código PHP:
Ver original
'#<!-- IF (.*?) -->(.*?)<!-- END IF -->#'
Ahora si el texto en cual se busca es el siguiente
Código HTML:
Ver original
El patrón funciona mal (es relativo), solo detecta hasta el primero END IF.
Código HTML:
Ver original
De alguna forma me haría falta que cuente los tags de inicio y los de cierre para que devuelva bien, por si el mismo patrón esta imbricado.