use charnames qw( :full ); my $s = "ksie\N{COMBINING OGONEK}gowo" . "s\N{COMBINING ACUTE ACCENT}" . "c\N{COMBINING ACUTE ACCENT}"; print $s =~ /^(?:\r\n|[\p{Alnum} \n-])*\z/ ? "match\n" : "no match\n";