I grepped my collection of text files (all English-language downloads from gutenberg.org) for -' and only found forty-'leven and fellow-'prentice. I've updated tybalt89's solution with your improvement.
The contents of $3 will contain a final space if one is present, so {|o'clock|--} is consistent with the instructions.
Comment on Re^3: Problem with a text-parsing regex