#!perl $_ = '%IF% %PROGNOCATEGORY% %CATEGORYS% sometext... %ENDIF%'; m/%IF% (?: \s* %[^%]+% \s* )* (.*?) %ENDIF% /x; print $1;