Okay, thanks for pointing this out.
You're right. Technically, it is documented.
Still, it's not that easy to truly grasp and understand this without an example.
I know, in the current compact style of your docs, there is no space for examples.
However, adding examples to all of the scripting functions (eg. in an expandable/collapsible container so that the documentation stays compact) would definitely be a valuable improvement to the documentation (especially for less tech-savvy users) and would have prevented my misunderstanding right from the beginning.
As this would mean a lot of work, I promise to not be disappointed if you don't have time for it 
Side Note:
I would actually prefer a different scripting language syntax, that is more intuitive and needs way less escaping. This is just for inspiration purposes, I don't advocate for you to abruptly change the scripting language that is currently in use xD
For instance, I really like the JavaScript's "Template Literal" syntax Template literals (Template strings) - JavaScript | MDN).
The default mode is plain text, and the expressions start with ${
and end with }
. So the only character you would ever have to escape is the $
symbol, which is done with back-slash \$
.
Inside the ${...}
you put can put ANY code (including arbitrary white-space) without having to care about escaping whatsoever, because the script engine knows it is in "code mode" now ! ;D
You could implement it like that:
${%artist} - ${%album} - ${num(%track, 2)} - ${ regexp(%title, /[^\w]{1,}/, '�') }
Side Question:
Is your code open source, or is there any API in any programming language for the MP3TAG core functionality? Because sometimes, the ability to write more advanced scripts outside the UI and its custom scripting language would be nice. I am not aware of any piece of open source library that supports Meta Tags so well, broadly, robustly and easy like your project. It's really great. Why not share this core code.
Anyway. I think we're done here. Thanks for your open ear.