title: Regex for unicode words with hyphens, numbers or other real world signs
body: <p>I've tried a bunch of regex codes for parsing words, and even though I can create a code for parsing them right, I find it difficult to convert it to regex. I'm not satisfied with my code, because it relies on a lot of 'ifs' and manual replacements.</p>
  
  <p>Here is my test case:</p>
  
  <blockquote>
    <p>String phrase = "O mapa-múndi encontra-se com J.A.Adams -- autor
    'lúdico' -- e custa 0,62% zenny's, o equivalente a R$452,10 (ou
    $200).";</p>
  </blockquote>
  
  <p>Here is my desired output:</p>
  
  <blockquote>
    <p>String words[] = new String[]{"O", "mapa-múndi", "encontra-se", "com",
    "J.A.Adams", "autor", "lúdico", "e", "custa", "0,62%", "zenny's", "o",
    "equivalente", "a", "R$452,10", "ou", "$200"};</p>
  </blockquote>
  
  <p>I've tried the "([^\p{L}\p{N}-'’]|$|^)+", but it starts with an empty string and removes the dots from names (J.A.Adams) and commas from numbers, along with other problems.</p>
  
  <p>Some rules:</p>
  
  <ul>
  <li>Unicode caracters (e.g. 'lúdico');</li>
  <li>Remove ' or " or - in the beginning or end of words;</li>
  <li>Keep ' or - or $ or . or , in the middle of words or numbers (e.g. J.A.Adams, mapa-múndi, encontra-se, 0,62, zenny's, R$452,10.</li>
  <li>Remove (or ignore) other dashes, parenthesis, commas, punctuation (? or !).</li>
  </ul>