my $re = qr/^[A-Z][^_]*_[A-Z][^_]*_[a-z][^.]*\.html$/; open my $fh, '>', 'badnames.txt' or die $!; while () { print $fh $_ unless m/$re/; } close $fh or die $!; __DATA__ Kilo_Kili_asc.html kilo_Kili_asc.html Jiko_Huji_asc.html Jiko_Huji_asc.htm Puji_huki_asc.html Puji_Huki_Asc.html