CREATE OR REPLACE FUNCTION test(TEXT) RETURNS bool language plperl as $$ return (shift =~ /[a-z\u0105\u0107\u0119\u0142\u0144ó\u015b\u017a\u017c\u0104\u0106\u0118\u0141\u0143\u015aÓ\u0179\u017b0-9_-]+/i) || 0; $$; CREATE FUNCTION select test('depesz'); test ------ t (1 row) select test('depesz\u0105\u0107\u0119\u0142'); test ------ t (1 row) select test('depesz\u0105\u0107\u0119\u0142$'); test ------ t (1 row) select test('dePEsz\u0105\u0106\u0119\u0142$'); test ------ t (1 row)