Question: I'm sure this has been asked before, but I can't seem to find it (or know the proper wording to search for)

Basically I want a regex that matches all non-alphanumeric except hyphens. So basically match \W+ except exclude '-' I'm not sure how to exclude specific ones from a premade set.

Answer: 
You can use:

```
[^a-zA-Z0-9_-]

```

or

```
[^\w-]

```

to match a single non-hyphen, non-alphanumeric. To match one or more of then prefix with a `+`
In Java7 or above, you need to prepend the `(?U)` to match all locale specific characters. e.g.

```
(?U)[^\w-]

```

In a Java string (you need to escape `\` character with another one):

```
(?U)[^\\w-]

```