JavaScript: referencias posteriores de expresiones regulares de cadena

Puede hacer una referencia como esta en JavaScript:

var str = "123 $test 123";
str = str.replace(/(\$)([a-z]+)/gi, "$2");

Esto reemplazaría (bastante tonto) "$ test" con "test". Pero imagine que me gustaría pasar la cadena resultante de $ 2 a una función, que devuelve otro valor. Intenté hacer esto, pero en lugar de obtener la "prueba" de la cadena, obtengo "$ 2". ¿Hay una manera de lograr esto?

// Instead of getting "$2" passed into somefunc, I want "test"
// (i.e. the result of the regex)
str = str.replace(/(\$)([a-z]+)/gi, somefunc("$2"));

Respuestas a la pregunta(5)

Su respuesta a la pregunta