# Casing Exceptions

**URL:** https://community.mp3tag.de/t/casing-exceptions/832
**Category:** General Discussion
**Created:** [February 19, 2004, 9:34pm UTC](https://community.mp3tag.de/t/casing-exceptions/832 "2004-02-19T21:34:32Z")
**Posts on this page:** 9
**Page:** 1

<div class="post-metadata">

### Author: ![Rijkstra](https://community.mp3tag.de/user_avatar/community.mp3tag.de/rijkstra/32/22_2.png) [@Rijkstra](https://community.mp3tag.de/u/Rijkstra)
#### Post date: [February 19, 2004, 9:34pm UTC](https://community.mp3tag.de/t/casing-exceptions/832/1 "2004-02-19T21:34:32Z")

</div>

In mp3tag is there a way to table exceptions to the "Mixed Case" routine? I have another program that has a plain-text exception file that can be applied to words a mixed-case routine might mess up such as:

a  
ABBA  
an  
and  
are  
as  
at  
but  
by  
de  
for  
in  
mp3  
McGee  
nor  
of  
OK  
on  
or  
the  
to  
TV  
USA  
USSR  
while  
with

... but it is weak when dealing with mp3 tags, so I use it for other filetypes and casing only. Title casing in English is probably more complicated than in German where all nouns are capitalized anyway. Title casing in English is like our spelling--many rules and exceptions to rules. Here's a sample from a Canadian website:

[Writer's Block - Writing Tips - Capitalization in Titles](http://www.writersblock.ca/tips/monthtip/tipmar98.htm)

---

<div class="post-metadata">

### Author: ![Florian](https://community.mp3tag.de/user_avatar/community.mp3tag.de/florian/32/5759_2.png) [@Florian](https://community.mp3tag.de/u/Florian)
#### Post date: [February 19, 2004, 10:55pm UTC](https://community.mp3tag.de/t/casing-exceptions/832/2 "2004-02-19T22:55:28Z")

</div>

Rijkstra,

you can add all these exceptions as replace actions in an extra action group and run this action group after the actual case conversion.

~ Florian

---

<div class="post-metadata">

### Author: ![Rijkstra](https://community.mp3tag.de/user_avatar/community.mp3tag.de/rijkstra/32/22_2.png) [@Rijkstra](https://community.mp3tag.de/u/Rijkstra)
#### Post date: [February 20, 2004, 4:54am UTC](https://community.mp3tag.de/t/casing-exceptions/832/3 "2004-02-20T04:54:11Z")

</div>

> [@](#):
>
> you can add all these exceptions as replace actions in an extra action group and run this action group after the actual case conversion.

That's quite a job when there are a lot of patterns involved. Is there any way to import all the actions needed or must they be all done by hand?

---

<div class="post-metadata">

### Author: ![Rijkstra](https://community.mp3tag.de/user_avatar/community.mp3tag.de/rijkstra/32/22_2.png) [@Rijkstra](https://community.mp3tag.de/u/Rijkstra)
#### Post date: [February 20, 2004, 6:39am UTC](https://community.mp3tag.de/t/casing-exceptions/832/4 "2004-02-20T06:39:01Z")

</div>

P.S. I wrote an Access query to create an MTA file that looks like this:

# MTA

"[#0]  
T=2  
F=\_ALL  
1=(Ep)  
2=(EP)  
3=1  
"  
"[#1]  
T=2  
F=\_ALL  
1=(Lp)  
2=(LP)  
3=1  
"  
"[#2]  
T=2  
F=\_ALL  
1=2Pac  
2=2PAC  
3=1  
"  
"[#3]  
T=2  
F=\_ALL  
1=A  
2=a  
3=1  
"

That's as close as Access gets without writing a VBA module, so I need to clean up the unwanted quotes in MS Word. Is there a way to change the case of a RegEx replacement string? There's a need for that to force uppercasing at the beginning of a line.

---

<div class="post-metadata">

### Author: ![Florian](https://community.mp3tag.de/user_avatar/community.mp3tag.de/florian/32/5759_2.png) [@Florian](https://community.mp3tag.de/u/Florian)
#### Post date: [February 20, 2004, 8:50am UTC](https://community.mp3tag.de/t/casing-exceptions/832/5 "2004-02-20T08:50:06Z")

</div>

> [@](#):
>
> Is there a way to change the case of a RegEx replacement string? There's a need for that to force uppercasing at the beginning of a line.

You can use someting like **$caps("$0")** at Replace matches with.

~ Florian

---

<div class="post-metadata">

### Author: ![Rijkstra](https://community.mp3tag.de/user_avatar/community.mp3tag.de/rijkstra/32/22_2.png) [@Rijkstra](https://community.mp3tag.de/u/Rijkstra)
#### Post date: [February 20, 2004, 1:17pm UTC](https://community.mp3tag.de/t/casing-exceptions/832/6 "2004-02-20T13:17:03Z")

</div>

> [@](#):
>
> You can use someting like **$caps("$0")** at Replace matches with.

Does that mean I need to escape the parens in the first two lines of my sample? Which other characters need to be escaped and what is the reason for it?

---

<div class="post-metadata">

### Author: ![Florian](https://community.mp3tag.de/user_avatar/community.mp3tag.de/florian/32/5759_2.png) [@Florian](https://community.mp3tag.de/u/Florian)
#### Post date: [February 20, 2004, 5:42pm UTC](https://community.mp3tag.de/t/casing-exceptions/832/7 "2004-02-20T17:42:04Z")

</div>

Yes, that's because it's a regular expression and non-literal charcters have to be masked out.

---

<div class="post-metadata">

### Author: ![Rijkstra](https://community.mp3tag.de/user_avatar/community.mp3tag.de/rijkstra/32/22_2.png) [@Rijkstra](https://community.mp3tag.de/u/Rijkstra)
#### Post date: [February 21, 2004, 9:45pm UTC](https://community.mp3tag.de/t/casing-exceptions/832/8 "2004-02-21T21:45:44Z")

</div>

Actually, no in the case of my generated files which are simple replaces by whole word. I successfully created the file with 60 words and growing. I decided to do the RegEx replacements by hand as they are very few and quite unique.

In the process I discovered a bug. The action dialog will pick up a .TXT file and display it blank at the end of the list. I moved the .TXT file out of the \actions\ directory and the problem went away.

---

<div class="post-metadata">

### Author: ![Florian](https://community.mp3tag.de/user_avatar/community.mp3tag.de/florian/32/5759_2.png) [@Florian](https://community.mp3tag.de/u/Florian)
#### Post date: [February 22, 2004, 8:44am UTC](https://community.mp3tag.de/t/casing-exceptions/832/9 "2004-02-22T08:44:09Z")

</div>

QUOTE (Rijkstra @ Feb 21 2004, 11:45 PM)

> [@](#):
>
> Yes, that's because it's a regular expression and non-literal charcters have to be masked out.

Actually, no in the case of my generated files which are simple replaces by whole word. I successfully created the file with 60 words and growing. I decided to do the RegEx replacements by hand as they are very few and quite unique.

  
If you don't use a regular expression in the Replace matches with you don't need to mask anything.

> [@](#):
>
> In the process I discovered a bug. The action dialog will pick up a .TXT file and display it blank at the end of the list. I moved the .TXT file out of the \actions\ directory and the problem went away.

I'll restict the displayed files to the .mta extension to the next release. Thanks for reporting.

~ Florian
