Reemplazo de la forma química en wiki - regexp

¿podría por favor darme un consejo, estoy reemplazando el<chemform> código de mi wiki que ya no se usa ... Las cadenas suelen ser simples como estas:

<chemform>CH3COO-</chemform>
<chemform>Ba2+</chemform>
<chemform>H2CO3</chemform>

Necesito que sean reemplazados por estos:

CH<sub>3</sub>COO<sup>-</sup>
Ba<sub>2</sub><sup>+</sup>
H<sub>2</sub>CO<sub>3</sub>

Hasta ahora se me ocurrió esta expresión regular para elHerramienta RegExr:

partido: <chemform\b[^>]*>(\D*?)([0-9]*)(\D*?)(\D*?)([0-9]*)(\D*?)([-+]*?)</chemform>

reemplazar: $1<sub>$2</sub>Hasta ahora se me ocurrió esta expresión regular para el4<sub>$5</sub>$6<sup>$7</sup>

Sé que el código es horrible, pero hasta ahora ha estado funcionando para mí, excepto por el hecho de que me está poniendo cuerdas vacías como<sub></sub>:

<sub></sub>CH<sub>3</sub>COO<sup>-</sup>
<sub></sub>Ba<sub>2</sub><sup>+</sup>
H<sub>2</sub>CO<sub>3</sub><sup></sup>

¿Cómo puedo deshacerme de estos sin hacer una segunda búsqueda de reemplazo? ¡Muchas gracias!

Respuestas a la pregunta(1)

Su respuesta a la pregunta