( # $2: a "word" consisting of one or more of (?: [[:word:]] # a word character | # or hyphen, quote, or both # with word characters before and after (?<= [[:word:]] ) (?: ' | - | '- | -' ) (?= [[:word:]] ) )+ ) #### # any punctuation excluding "-" # or "-" that is neither preceded nor followed by itself (?: (?!-) [[:punct:]] | (?