After declaring a wrapper for pcre.replace:
sql>create function pcre_replace(s string, pattern string, repl string, flags string) returns string external name pcre."replace";
operation successful (6.187ms)
I cannot get replacements with references to captures work (but the code in pcre.c seems to support it):
sql>select pcre_replace('Apple Pear', '^([a-zA-Z]+)\\s*([a-zA-Z]+)$', '\\1 \\2', '');
+---------------------------+
| pcre_replace_single_value |
+===========================+
| \1 \2 |
+---------------------------+
1 tuple (0.309ms)
The pattern is matched, but the back references are replaced literally.