title: Regex to match any non-alphanumeric character but the minus
body: <p>I need to clean up filenames. So I have this code:</p>
  
  <pre><code>//\W_ is any non-word character (not [^a-zA-Z0-9_]).
  Regex regex = new Regex(@"[\W_]+");
  return regex.Replace(source, replacement);
  </code></pre>
  
  <p>This works fine, but now I don't want to remove the minus (-), so I changed the regex to this:</p>
  
  <pre><code>[\W_^-]+
  </code></pre>
  
  <p>But that does not work. What did I miss?</p>