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


in reply to Variable length lookbehind not implemented in regex

How about negating the question. Removes the need for negative matching:

$result= (not /^([^A-Z]|[A-Z].*(_Flags|_Info))$/);