I have an action group that converts to title case and it has done that hundreds of times without an error. In most title case schemes prepositions of four letters or less are also lower cased so my action group outputs:
Joe Smith - A Great Day at the Beach
I attached "Case Fix.mta" that does what you propose to do. Unfortunately, I don't believe Mp3tag has a way to import such files, but you can manually place them while Mp3tag is closed. The file is located here.
I probably should have even been a little more specific, stating that I want to batch rename all the files at once and not have to worry about that case situation. It sounds like MP3TAG cannot do that.
Because you are an Apple OS user, you probably know better the dissimilarities compared to other operating systems in the world, so have a closer look into the direction, what may be different between a disk volume on a Windows machine against a disk volume on an Apple machine.
Do you try to rename files on a HFS+ volume, which has been formatted as significant case sensitive, in order to allow uppercase and lowercase letters to be different letters?
If so, then you have to observe this case.
This can also happen on a SMB network folder.
It could be, that ...
"Joe Smith - A Great Day At The Beach.mp3"
"Joe Smith - A Great Day At the Beach.mp3"
... are two different files within the same folder on the disk.
This way it is clear, why the renaming fails.
See book "Mac OS X Server Essentials".
It would make sense to change the old post and remove the download option.
Hmm, this has nothing to do with "iteration", it is just a "lookahead".
(?=pattern) consumes zero characters, only if pattern matches.
(?!pattern) consumes zero characters, only if pattern does not match.
This regular expression makes an uppercase letter on word boundary ...
$regexp('Joe Smith - a Great Day (at the Beach)','\b(A|An|And|As|At|By|De|Del|En|For|From|Il|In|Into|Of|Off|On|Or|Out|Over|Tha
n|That|The|To|Upon|With)\b
','\u$1',1)==> 'Joe Smith - A Great Day (At The Beach)'
This is bizarre. Without '?=' the RegEx catches only the first match, but with it catches multiple matches. I honestly thought it was an iteration variation on:
(?1) - Repeat the first group
(?R) - Repeat entire match
(?0) - Repeat entire match
If I can get it to fail, I'll look into it further. I thought it meant 'iterate to the next space.'
My drive is formatted as case sensitive, so the files can both exist if only the case of one letter is changed. Is there any setting in the MP3TAG program that I should be looking at?