Я понял, что мои требования были более сложными, чем в тот момент, когда я писал.
Мне нужно сопоставить частично дефисные слова (например, «-быстрый»), а также слова «просто и точно».
Итак, я нашел следующее регулярное выражение для работы.
regex = /\w*['-]\w*[-]*\w*[-]*\w*|[[:punct:]]+/
string = "The man, had a big-cat that his Sister's aunt gave him and was -fast 's very-very-big-cat.!!"
Предложение не имеет особого смысла, но включает в себя несколько хороших примеров слов с пунктуацией и пунктуацией, которым я должен соответствовать.
string.scan (регулярное выражение)
=> [",", "big-cat", "Sister's", "-fast", "'s", "very-very-big-cat", ".!!"]
Могут быть способы улучшить способ написания регулярных выражений, но лучшее, что я могу сделать, - это получить нужные мне результаты.