¿Cómo puedo usar un valor calculado en una operación de reemplazo RegEx en C #?

Estoy buscando una forma de usar la longitud de un grupo de coincidencia en la expresión de reemplazo con la función c # regex.replace.

Es decir, ¿qué puedo reemplazar? con en el siguiente ejemplo para obtener la salida deseada que se muestra a continuación?

Ejemplo:

val = Regex.Replace("xxx", @"(?<exes>x{1,6})", "${exes} - ???");

Salida deseada

X - 3

Nota: Este es un ejemplo extremadamente artificial / simplificado para demostrar la pregunta. Me doy cuenta de que para este ejemplo una expresión regular no es la forma ideal de hacer esto. Solo confíe en mí que la aplicación de la respuesta en el mundo real es parte de un problema más complejo que requiere el uso de un reemplazo RegEx aquí.

Respuestas a la pregunta(3)

Su respuesta a la pregunta