http://www.perlmonks.org?node_id=791084


in reply to AND and OR on Regular Expressions

I think the easiest way to handle ANDs is using multiple regexen:
if (/olive/ and /popeye|bluto/) { }
But if you know the order of appearance (i.e. olive before popeye) you can use:
/olive.*(popeye|bluto)/