$_ = "STARTP ... ENDP"; @data = map {[/^TITLE\n([^E]*(?:E(?!NDTITLE)[^E]*)*)ENDTITLE/gm]} /^STARTP\n([^E]*(?:E(?!NDP)[^E]*)*)ENDP/gm;