use charnames qw( :full ); my $s = "ksi\N{LATIN SMALL LETTER E WITH OGONEK}" . "gowos\N{LATIN SMALL LETTER S WITH ACUTE}" . "c\N{LATIN SMALL LETTER C WITH ACUTE}"; print $s =~ /^(?:\r\n|[\p{Alnum} \n-])*\z/ ? "match\n" : "no match\n";