x <- "I'm dash before word -word, dash &%$,. in-between word, two before word --word just dashes ------, between words word - word"
gsub("\\b([-'])\\b|[[:punct:]]+", "\\1", x, perl=TRUE)
# => "I'm dash before word word dash in-between word two before word word just dashes between words word word"
eCA8LSAiSSdtIGRhc2ggYmVmb3JlIHdvcmQgLXdvcmQsIGRhc2ggJiUkLC4gaW4tYmV0d2VlbiB3b3JkLCB0d28gYmVmb3JlIHdvcmQgLS13b3JkIGp1c3QgZGFzaGVzIC0tLS0tLSwgYmV0d2VlbiB3b3JkcyB3b3JkIC0gd29yZCIKZ3N1YigiXFxiKFstJ10pXFxifFtbOnB1bmN0Ol1dKyIsICJcXDEiLCB4LCBwZXJsPVRSVUUpCiMgPT4gICJJJ20gZGFzaCBiZWZvcmUgd29yZCB3b3JkIGRhc2ggIGluLWJldHdlZW4gd29yZCB0d28gYmVmb3JlIHdvcmQgd29yZCBqdXN0IGRhc2hlcyAgYmV0d2VlbiB3b3JkcyB3b3JkICB3b3JkIgo=