łańcuch java podzielony na wszystkie niealfanumeryczne z wyjątkiem apostrofów

Chcę więc podzielić ciąg znaków w java na dowolne znaki niealfanumeryczne.

Obecnie robię to w ten sposób

words= Str.split("\\W+");

Chcę jednak zachować apostrofy („”). Czy istnieje jakieś wyrażenie regularne, które zachowuje apostrofy, ale kopie resztę śmieci? Dzięki.