Parsing einer chemischen Formel

Ich versuche, eine Methode für eine App zu schreiben, die eine chemische Formel wie "CH3COOH" verwendet und eine Sammlung voller ihrer Symbole zurückgibt.

CH3COOH würde [C, H, H, H, C, O, O, H] zurückgeben

Ich habe bereits etwas, das irgendwie funktioniert, aber es ist sehr kompliziert und verwendet viel Code mit vielen verschachtelten if-else-Strukturen und Schleifen.

Gibt es eine Möglichkeit, dies mit einem regulären Ausdruck in String.split oder in einem anderen brillanten einfachen Code zu tun?