Thanks @ComplexPoint, that looks interesting and possible, but I think I'll go with Rob's (@griffman) suggestion. From here it seems like what it would take for me to wrap my head around that much JavaScript would be a bit daunting, and I've used JavaScript before (but 20 years ago).
Thanks Rob @griffman, I had been thinking along similar lines myself. I think it's a straightforward way to do it that is based on the essential patterns of the problem. It's a pretty simple regex substitution to surround any sequence of modifier symbols with some other Unicode symbol to use as a field delimiter. I think I'll use "รท", the division sign, because visually it's distinct and there's zero chance of it being in the input strings.
The tricky entries are those that have no modifiers. One possibility is that the unmodified key name is F1, F2, ... etc. That's a separate regex search and replace, just like the first. But if that field is empty, how do I find it? I guess I'll have to have something specific from the other content to look for, which means this can't be an all-purpose subroutine if it handles those cases. In my first versions, that is probably OK, I can modularize the components rather than the whole thing, so if I reuse this in a different context, I only have one section to change.
To see what I want to use this for, take a look at Feature Requests: Comments on Triggers, Rearranging Triggers .