So, there are a number of regular expression which matches a particular group like the following:

```
/./ - Any character except a newline.
/./m - Any character (the m modifier enables multiline mode)
/\w/ - A word character ([a-zA-Z0-9_])
/\s/ - Any whitespace character

```

And in ruby:

```
/[[:punct:]]/ - Punctuation character
/[[:space:]]/ - Whitespace character ([:blank:], newline, carriage return, etc.)
/[[:upper:]]/ - Uppercase alphabetical

```

So, here is my question: how do I get a regexp to match a group like this, but exempt a character out?

Examples:

* match all punctuations apart from the question mark
* match all whitespace characters apart from the new line
* match all words apart from "go"... etc

Thanks.