replaceDash <- function(x) gsub("(\\w)-(?=\\w)", "\\1§", x, perl=T)
# these are all OK
replaceDash("Hawaii-Five-O")
## [1] "Hawaii§Five§O"
replaceDash("jack-of-all-trades")
## [1] "jack§of§all§trades"
replaceDash("A-bomb")
## [1] "A§bomb"
replaceDash("freakin-A")
## [1] "freakin§A"
# not the desired outcome
replaceDash("jack-o-lantern") # FAILS - should be "jack§o§lantern"
## [1] "jack§o-lantern"
replaceDash("Whack-a-Mole") # FAILS - should be "Whack§a§Mole"
## [1] "Whack§a-Mole"
cmVwbGFjZURhc2ggPC0gZnVuY3Rpb24oeCkgZ3N1YigiKFxcdyktKD89XFx3KSIsICJcXDHCpyIsIHgsIHBlcmw9VCkKCiMgdGhlc2UgYXJlIGFsbCBPSwpyZXBsYWNlRGFzaCgiSGF3YWlpLUZpdmUtTyIpICAKIyMgWzFdICJIYXdhaWnCp0ZpdmXCp08iCnJlcGxhY2VEYXNoKCJqYWNrLW9mLWFsbC10cmFkZXMiKSAgCiMjIFsxXSAiamFja8Knb2bCp2FsbMKndHJhZGVzIgpyZXBsYWNlRGFzaCgiQS1ib21iIikgICAgICAgICAKIyMgWzFdICJBwqdib21iIgpyZXBsYWNlRGFzaCgiZnJlYWtpbi1BIikgICAgICAKIyMgWzFdICJmcmVha2luwqdBIgoKIyBub3QgdGhlIGRlc2lyZWQgb3V0Y29tZQpyZXBsYWNlRGFzaCgiamFjay1vLWxhbnRlcm4iKSAgIyBGQUlMUyAtIHNob3VsZCBiZSAiamFja8Knb8KnbGFudGVybiIKIyMgWzFdICJqYWNrwqdvLWxhbnRlcm4iCnJlcGxhY2VEYXNoKCJXaGFjay1hLU1vbGUiKSAgICAjIEZBSUxTIC0gc2hvdWxkIGJlICJXaGFja8KnYcKnTW9sZSIKIyMgWzFdICJXaGFja8KnYS1Nb2xlIg==