BUG #18870: weird behavior with regexp_replace

PG Bug reporting form <noreply@postgresql.org>

From: PG Bug reporting form <noreply@postgresql.org>
To: pgsql-bugs@lists.postgresql.org
Cc: devops@key2asset.com
Date: 2025-03-27T13:43:50Z
Lists: pgsql-bugs
The following bug has been logged on the website:

Bug reference:      18870
Logged by:          reinko
Email address:      devops@key2asset.com
PostgreSQL version: 17.4
Operating system:   Ubuntu 11.4.0-1ubuntu1~22.04
Description:        

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 ö, ä, ë.

the to lower is not really relevant to this issue the same happens when it's
just a direct string aswell.
this issue happens with alot of special a-z characters é, è have the same
issue for example.

Kind regards,
Reinko Brink