http://regexr.com? 2uvuu - используйте выражение:
<!--\s+IF\s+([^\s]*)\s-->([^<]*)<!--\sENDIF\s-->
EDIT:
Учитывая, что то, что вы хотите сопоставить внутри «тега» оператора if, может иметь пробел, более медленное выражение, которое должно обрабатывать что-либо внутри «оператора if», должно выглядеть следующим образом (в RegExr ) :
/<!--\s+IF\s+(.*?)\s-->([^<]*)<!--\sENDIF\s-->/gixsm
Если затем вы хотите иметь возможность захватывать другие теги (или символ <
) внутри результата (если выражение «true», вы захотите использовать (опять чуть медленнее) выражение (на * 1017) * RegExr ):
/<!--\s+IF\s+(.*?)\s-->(.*?)<!--\sENDIF\s-->/gixsm
END EDIT