title: PHP regular expression to match words
body: <p>Given a string, I want an array of strings containing words, each preceded by any non-word characters.</p>
  <p><strong>Example input string:</strong></p>
  <p><code>one &quot;two&quot; (three) -four-</code></p>
  <p>The words in the string may be anything, even gibberish, with any amount of punctuation or symbols.</p>
  <p><strong>What I would like to see:</strong></p>
  <pre>array:
  one
   "two
  " (three
  ) -four
  -</pre>
  <p>Essentially, for each match the last thing is a word, preceded by anything left over from the previous match.</p>
  <p>I will be using this in PHP. I have tried various combinations of preg_match_all() and preg_split(), with patterns containing many variations of &quot;\w&quot;, &quot;\b&quot;, &quot;[^\w]&quot; and so on.</p>
  <p><strong>The Bigger Picture</strong></p>
  <p>How can I place a * after each word in the string for searching purposes?</p>