PG Bug reporting form <noreply@postgresql.org> writes:
> select regexp_replace(LOWER('Örebro'), '\W', '_', 'g') in postgres 15 the
> result is örebro which is correct since ö should fit in the \w for a
> regex.
> select regexp_replace(LOWER('Örebro'), '\W', '_', 'g') --> since postgres 17
> the result is _rebro which is incorrect since \w should also contain
> characters like ö, ä, ë.
This most likely indicates that you've got a different database
collation selected in the v17 installation. Postgres defers to
the LC_CTYPE setting (or, in some configurations, the ICU collation)
to decide what is a letter. See
https://www.postgresql.org/docs/current/charset.html
psql's "\l" command will give a quick overview of what collations
you have selected.
regards, tom lane