I have an Action Type that correctly addresses word contractions. However, I was unsuccessful trying to create an action type to capitalize the first letter of words that follow an apostrophe that have nothing before the apostrophe ('Bout, 'Cause, 'Round, etc.) without affecting already contracted words. Most attempts turned words like can't into Can'T.
I was also unsuccessful creating an Action Type to capitalize the first letter of each word in a multi-hyphenated term. I want to turn things like tee-nah-nah-nah or diddle-da-diddle into Tee-Nah-Nah-Nah and Diddle-Da-Diddle. But no luck. It only capitalizes the first section: Tee-nah-nah-nah and Diddle-da-diddle.
This works fine if the word has a whitespace \s before the apostrophe.
However, the OP is asking for "that have nothing before the apostrophe".
Perhaps I have misunderstood this request, but wouldn't "nothing" be different from "whitespace"?
The suggested expression works for all apostrophes as word starters as long as this word isn't also the start of the field.
I would say: try it, then refine it if at all.
If it might be useful to the discussion, modification the solution to the regex proposed by @ohrenkino to capitalize the first letters of words following an apostrophe—specifically those with nothing preceding the apostrophe.
With space
Format value $regexp(%title%,''(\l), ''\u$1)
Example: Music'bout,'cause,'round
Result: Music 'Bout, 'Cause, 'Round
Without space
Format value $regexp(%title%,''(\l),''\u$1)
The problem with the apostrophe in the middle is that this would also transform "isn't" into "isn'T" (etc.) - this could also be achieved with the case conversion action and the apostrophe added as word separating character.
If you want to match those cases but not standard contractions, you can get more specific.
I've used this list of standard contractions as the test data.
By only adding characters to the character class in the negative lookbehind that exist in standard contractions right before the ', they are left untouched.