SPL 中使用正则替换的问题

我有这么一个需求,把文本中的数值用正则匹配出来后替换成该数值的 2 倍,比如,
文本串 AB12CD34,把其中的数值用 regex@a 替换成其两倍,结果是 AB24CD68。
可不可以用正则来实现。我在操作时发现如下问题:
用 regex@a 替换时, 有其正则构造属性,$1,$2, 但不能对其进行转换运算,只能文本拼接。比如,

=A1.regex@a (“(\d+)”,(a=“$1”,b=fill(a,2),b))
此时,"$1" 是匹配到的数值文本 12 和 34,fill 之后变成 1212 和 3434, 这是正确的,如下图:

imagepng

但是,换成另一种写法,对 $1 进行数值转换,number(“$1”) 这个结果是 null, 如下图:
=A1.regex@a (“(\d+)”,(a=“$1”,b=number(a),string(b==null)))
imagepng

再换一种写法,对 $1,取左边第一位,left(“$1”,1),照理文本操作应该没问题,但是报错了,如下图:
=A1.regex@a (“(\d+)”,(a=“$1”,b=left(a,1),b))
imagepng

请问:
1、有没有办法用正则实现这个需求?
2、spl 的 regex 中除了 $1,$2…$9 这个属性,还有没有其它属性, 比如,
匹配到的字符串本身: “$&”;
匹配时的源字符串: “$_”;
匹配到的字符串的左右两边的字符串: “$`”,“$’”;
有没有匹配时的索引:regexp.index
Thx in advance!