Once you start to change the case, you have to state ALL the characters that serve as word boundaries - otherwise they are treated like any other character
The case conversion "Mixed Case" means that every first letter in a word gets capitalized.
and in the string
the "(" is the first letter and "m" is the second one, which becomes lower case.
A "blank" always serves as word boundary.
So for the case of "MacNeal", it may be better to use an action of the type "Format value" for the e.g. TITLE and then the
format string: $caps2(%title%,'-(&%!.:;')
This leaves all capital letters as they are and only changes those that follow one that is specified as word boundary
Thank you for your explanation Ohrenkino. I think I understand the get the gist of it now. I had thought that when boundary is specified for this particular action, it will apply to the words containing the boundary only, i.e. the hyphen in this case. I expected anything else to be left alone.
Is it not preferable then, to use a regular expression to take care of hyphenated words- one which will not touch anything else but hyphenated words- rather than setting up and applying an elaborate Case Conversion action to take care of all possible scenarios? Would you please help with that?
Regexes are usually a little confusing
But here we go: $regexp(%title%,'-(.)',-'\u$1')
You have to enter the boundary character twice: in the search part and the replace part.
Use it in Convert>tag-Tag or in an action of the type "Format value".