# Listing all tagged fields in the tag panel

**URL:** https://community.mp3tag.de/t/listing-all-tagged-fields-in-the-tag-panel/71949
**Category:** Support
**Created:** [October 11, 2026, 5:26pm UTC](https://community.mp3tag.de/t/listing-all-tagged-fields-in-the-tag-panel/71949 "2026-10-11T17:26:58Z")
**Posts on this page:** 1
**Showing post:** 6

<div class="post-metadata">

### Author: ![Casual\_Tea](https://community.mp3tag.de/user_avatar/community.mp3tag.de/casual_tea/32/18886_2.png) [@Casual\_Tea](https://community.mp3tag.de/u/Casual_Tea)
#### Post date: [October 14, 2026, 9:21pm UTC](https://community.mp3tag.de/t/listing-all-tagged-fields-in-the-tag-panel/71949/6 "2026-10-14T21:21:58Z")

</div>

> [@7stones](#):
>
> The ↵ character doesn't show on my Wine/Mp3tag installation

You probably use a different font than I do. I use `Sarasa UI CL` to get most of the CJK symbols displayed. That also partially explains the different alignment since I suspect neither your font nor mine are monospace.

> [@7stones](#):
>
> The 🦖 character doesn't show either

The t-rex is not supposed to show up since I used it as the delimiter. It's less wordy and expensive to match against compared to `‹†×‡›` and as an added benefit, seeing it in there cheers me up every time. I also do not expect a t-rex emoji to be part of a legitimate tag.

> [@7stones](#):
>
> maybe I'll try to do some edits on your version, although not sure how many hours I'd have to put into that - it's pretty darn complex

I have broken it down into individual steps with test actions that each act on the result of the previous one to not go completely insane while changing/fixing it (and also to feed intermediary results into regex101 to test my ideas).  
If you're interested, I can provide these test actions and outline what each of them is supposed to do, so you can adopt part of the behavior or have an easier time understanding the whole. I've stared at it so much in the last 2 days that I almost feel like I understand it in the one line form. Almost.

Also:  
The padding for `ALBUM ARTIST!` is off in your screenshot because I don't expect (and thus match for) an `!` in the tag name, which is why it retains the default 4 tabs I used as the initial padding to then consume/reduce based on the length of the tag name.

## Breakdown

Field: `TEST1`  
Format string:

```auto
$list(,:$repeat($char(9),4),🦖,\\)

```

Creates the initial tag-value list, separated by `:` and 4 tabs, tags delimited by 🦖.

Field: `TEST2`  
Format string:

```auto
$sort($regexp(%test1%,(?:(?<=^)|(?<=🦖))('['a-zA-Z_ ']'+:\t++(?='['^🦖']'{68})'['^🦖']'{67})'['^🦖']'*,$1…),🦖)

```

Trims tag values that are longer than 67 chars, appends `…` when a value was trimmed and sorts the result alphabetically.

Field: `TEST3`  
Format string:

```auto
$regexp(%test2%,(?:(?<=^)|(?<=🦖))('['a-zA-Z_ ']'+:),\U$1)

```

Changes the tag case to uppercase.

Field: `TEST4`  
Format string:

```auto
$regexp(%test3%,\r?\n,↵)

```

Replaces both Windows and Linux style newlines in tag values with `↵`.

Field: `TEST5`  
Format string:

```auto
$regexp(%test4%,(?:(?<=^)|(?<=🦖))('['^:']'{1','31}:\t+'['^🦖']'{1','36})🦖,$1\r\n)

```

Adds newlines after tag value pairs where neither the tag name exceeds 31 chars nor the tag content 36.

Field: `TEST6`  
Format string:

```auto
$regexp(%test5%,('['^:\n']'+:)\t+('['^🦖\n']'+)🦖(?=\w),$1\r\n $2\r\n)

```

When tag value or name were too long, this moves the value to a new line and prepends 8 spaces.

Field: `TEST7`  
Format string:

```auto
$regexp(%test6%,(?|(^LYRICIST:\t{4})\t*|(^COMMENT:\t{3})\t*|(^'['A-Z_ ']'{31}:)\t*|(^'['A-Z_ ']'{24','30}:\t)\t*|(^'['A-Z_ ']'{16','23}:\t{2})\t*|(^'['A-Z_ ']'{8','16}:\t{3})\t*|(^'['A-Z_ ']'{1','7}:\t{4})\t*),$1)

```

This handles the actual formatting/padding. Depending on the length of the tag name, the 4 initially added tab characters are partially removed to adjust the padding.

The numbers I use come from me creating test tags with `Z` (medium size uppercase) letters from 1 `Z` all the way to 31 `ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ`s and noting down how many tabs were required to align the tag values in Mp3tag.  
This depends on the font used and can vary from tag name to tag name. `COMMENT` for example did not fit, which is why I added a specific match for it. As long as the specific case comes before the general case in the alternation, outliers can be fixed this way.

**UPDATE:**  
To make it easier to maintain (and also because I noticed that `LYRICIST` also did not fit, I changed this part to use a branch reset, which makes the alternation easier to maintain as all capture groups capture to `$1`.

If you don't want to create those test actions by hand, here's my action group that contains them:

Revision:  
2026-10-16 added branch reset and `LYRICIST`  
[\_\_ALLFIELDS\_TESTS.mta](https://community.mp3tag.de/uploads/short-url/tK0p3m2QKIEj5e5gp9AjRYMXvDr.mta) (985 Bytes)

### Regex format string trick

Here's a trick if you want to test or change my regexes on regex101 for example:  
Since `,`, `[` and `]` need to be escaped in format strings, I created these quick and dirty conversion regexes to escape/unescape regexes. I don't claim that they always work, but for the regexes I used in this case, they did as I did not use literal `[],'` in them.

[Escape for Mp3tag format string](https://regex101.com/substitution?regex=%28%5B%2C%5B%5C%5D%5D%29&testString=&flags=gm&flavor=pcre2&delimiter=%2F&substitution=%27%241%27)

[Unescape to test regex](https://regex101.com/substitution?regex=%28%3F%3C%3D%5B%2C%5B%5C%5D%5D%29%27%7C%27%28%3F%3D%5B%2C%5B%5C%5D%5D%29&testString=&flags=gm&flavor=pcre2&delimiter=%2F&substitution=)

Hopefully the breakdown as well as the reasoning for why each step was performed give others ideas what can be done with the new `_FORMAT` field.

---

_[View the full topic](https://community.mp3tag.de/t/listing-all-tagged-fields-in-the-tag-panel/71949)._
