Testing mp3tag behaviour

Thank you for your comprehensive reply.

As you mentioned tags, I was interested to see the ones listed within mp3tag so looked through the data folder. I then saw what you mean, as the following are labelled 'fields':

TITLE
ARTIST
ALBUM
YEAR
TRACK
GENRE
COMMENT
_DIRECTORY
ALBUMARTIST
COMPOSER
DISCNUMBER

I notice that _FILENAME is missing from this list, doesn't that seem strange?

Not missing in documentation though:

ALBUM
ALBUMSORT
ALBUMARTIST
ALBUMARTISTSORT
ARTIST
ARTISTSORT
BPM
COMMENT
COMPILATION
COMPOSER
COMPOSERSORT
CONDUCTOR
CONTENTGROUP
COPYRIGHT
DISCNUMBER
ENCODEDBY
ENCODERSETTINGS
ENCODINGTIME
FILEOWNER
FILETYPE
GENRE
GROUPING
INITIALKEY
INVOLVEDPEOPLE
ISRC
LANGUAGE
LENGTH
LYRICIST
MEDIATYPE
MIXARTIST
MOOD
MOVEMENTNAME
MOVEMENT
MOVEMENTTOTAL
MUSICIANCREDITS
NETRADIOOWNER
NETRADIOSTATION
ORIGALBUM
ORIGARTIST
ORIGFILENAME
ORIGLYRICIST
ORIGYEAR
PODCAST
PODCASTCATEGORY
PODCASTDESC
PODCASTID
PODCASTKEYWORDS
PODCASTURL
POPULARIMETER
PUBLISHER
RATING MM
RATING WMP
RELEASETIME
SETSUBTITLE
SUBTITLE
TAGGINGTIME
TITLE
TITLESORT
TRACK
UNSYNCEDLYRICS
WWW
WWWARTIST
WWWAUDIOFILE
WWWAUDIOSOURCE
WWWCOMMERCIALINFO
WWWCOPYRIGHT
WWWPAYMENT
WWWPUBLISHER
WWWRADIOPAGE
YEAR

I had looked through the documentation and find it strange some things are undocumented like _TAG & _ALL. From reading other posts there is a danger that irrelevant tags will be affected by using these 'pseudo-fields' with undesirable results.

Otherwise tags and functionality are documented here:

Having identified the disadvantages of using 'pseudo-fields', it is frustrating that there is not more functionality for changing multiple specific tags at the same time.

In one of my other posts this was explored but of limited success using guess values. For example, I have a list of band names that I want to force to uppercase, but at the moment this means reproducing the list for several fields, which means if adding or removing from the list, it becomes very onerous.

It would be much better to have one action within an action group to tackle all these fields at once, such as ALBUMARTIST, ARTIST & ARTISTS. Even better, it would be able to cope with _FILENAME & _DIRECTORY to cover all the relevant fields. There do appear to be limitations to using guess values in this way, in part because this use of functionality is not documented and because I still have limited understanding of correct syntax. This means I could be wasting my time trying to make something work that others know wont in the first place or I can't make it work when someone else could because it has not been written correctly.

Here is an example:

Guess values:
$replace(%ALBUMARTIST% === %ARTIST% === %ARTISTS%,'^(abba|adda|absrdst|acdc|ac dc|akdong musician|bkpr|blk jks|bts|chllngr|chvrches|chll pll|dfrnt|diiv|dmc|dnce|drwn|dtcv|dwntwn|dvsn|dvsr|exo-k|grmln|haim|htrk|hxlt|inxs|jmsn|jpnsgrls|kaytranada|kda|kshmr|ladybaby|lany|lee hi|lndn drgs|lnzndrf|lvthn|mgmt|mika|mnek|mndrmnek|ms mr|mstrkrft|n sync|nsync|partynextdoor|pwr bttm|pza|rdgldgrn|rkcb|rlyr|rÜfÜs du sol|rvivr|ry x|sbtrkt|shxcxchcxsh|sophie|stnnng|strfkr|swmrs|tnght|tr/st|tts|tstr|walk the moon|wzrd|u2|u-kiss|unkle|wstrn|xtrmst|zayn)$',$upper(%ALBUMARTIST% === %ARTIST% === %ARTISTS%)

String:
%ALBUMARTIST% === %ARTIST% === %ARTISTS%

Is this written correctly? Can you see a way of making this work correctly with _FILENAME and _DIRECTORY given the limitations forced onto mp3tag by Windows?