La regex utilisée dans PostgreSQL est en fait implémenté à l'aide d'un progiciel écrit par Henry Spencer. Ce n'est pas bizarre, ça a ses propres avantages, particularités.
L'une des différences par rapport aux moteurs de regex NFA habituels est la limite de mot. Ici, \Y correspond à une limite de non-mot. Les autres modèles dont vous avez besoin sont assez connus.
Donc, vous devez utiliser '^(\w+)|\Y\w' motif et un '\1' remplacement.
Détails :
^- début de l'ancre de chaîne(\w+)- Groupe de capture 1 caractères correspondants de 1 mot ou plus (ceci sera référencé par\1du motif de remplacement)|- ou\Y\w- un caractère de mot précédé d'un autre caractère de mot.
Le \1 est appelé un remplacement backreference numéroté
, qui place simplement la valeur capturée avec le groupe 1 dans le résultat de remplacement.