Ich bin auch ein Freund von basisfunktionaler Programmierung, d.h. ohne 'Schnickschnack' wie RegEx usw.
Das heißt aber nicht, das ich mich nicht damit beschäftigte und dann, wenn es sinnvoll(er) ist, diese auch einzusetzen.
Hier könnte man eine kleine Sprache definieren, die aus den Symbolen (nennen wir sie 'On+'), Zeilenanfängen und sonstigem Text besteht.
Das macht man mit einem Lexer/Tokenizer, dessen Grundlage i.a. ein RegEx ist.
Man *kann* das auch handcodiert machen, aber -ehrlich gesagt- ich nehme gerne die Dienste von DHL, UPS o.ä. in Anspruch, auch wenn ich das Paket selbst abliefern könnte, vermutlich sogar etwas schneller, aber: WTF.
Mit Standardanbietern/-tools ist es einfach bequemer und ich weiss eins sicher: Es funzt.
Ach: Eins noch: Deine speziell implementierte Variante hat ein Problem: Sie ist nicht allgemeingültig. Du musst jedesmal das
Rad neu erfinden. Macht Spass, aber ist auch irgendwie langweilig.