Assuming English alphabet, and that there can only be at most one symbol (any of [’'-]) between substring of alphanumeric characters, and that there can only be at most one of those symbol at the beginning and the end of a "word" ("word" as defined in the question).

[’']?\b[a-zA-Z0-9]+(?:[’'-][a-zA-Z0-9]+)*\b[’']?

Test cases:

"Us and Them"’s inclusion on the album The Dark Side of the Moon
You Am I’s latest CD
The 69’ers’ drummer, Tom Callaghan (only the second apostrophe is possessive)
His ’n’ Hers’ first track is called "Joyriders".[18]
Was She's success greater, or King Solomon’s Mines's?
Rock 'n' Roll
’bout for about, ’less for unless, ’twas for it was
’70s for 1970s
You-Know-Who
the fo’c’s’le’s timbers
Three-hundred-year-old trees are an indeterminate number of trees that are each aged 300 years.
syl-la-bi-fi-ca-tion
double--hyphen