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


in reply to Having a problem with negative look behind assertion

I would say only Athanasius has a correct answer yet, I see mistakes in the other answers. So I made sure and tested. This should work (and still uses only one regex):

if( $line =~ /^(?!fee).*[Bb]ar.*\.java/ )

This is a negative look-ahead fixed at the start of the line (with ^).