Hello Charles, unfortunately on Windows 7 this fails:
psql (9.5.3) Type "help" for help.
# select lower(('И'::text collate "en_US")) ; ERROR: collation "en_US" for encoding "UTF8" does not exist LINE 1: select lower(('?'::text collate "en_US")) ; ^
By the way I the following code works well for me on all 3 platforms:
CREATE TABLE words_verbs ( word varchar(255) PRIMARY KEY CHECK ( word ~ '^[А-Я]{2,}$' AND word !~ '[ЖШ]Ы' AND word !~ '[ЧЩ]Я' AND word !~ 'Ц[ЮЯ]' AND (word ~ '[ТЧ]ЬСЯ$' OR word ~ '[ТЧ]Ь$' OR word ~ 'ТИ$')), hashed varchar(32) NOT NULL );
but I understand that it is probably different methods on the lower layer (pcre instead of some collating functions?)....