title: Regex string with 2+ different numbers and some optional characters in Snowflake syntax
body: <p>I would like to check if a specific column in one of my tables meets the following conditions:</p>
  
  <ul>
  <li><p>String must contain at least three characters</p></li>
  <li><p>String must contain at least two <strong>different</strong> numbers [e.g. 123 would work but 111 would not]</p></li>
  <li><p>Characters which are allowed in the string: </p>
  
  <ul>
  <li>Numbers (0-9)</li>
  <li>Uppercase letters</li>
  <li>Lowercase letters </li>
  <li>Underscores (_)]</li>
  <li>Dashes (-)</li>
  </ul></li>
  </ul>
  
  <p>I have some experience with Regex but am having issues with Snowflake's syntax. Whenever I try using the '?' regex character (to mark something as optional) I receive an error. Can someone help me understand a workaround and provide a solution? </p>
  
  <p>What I have so far:</p>
  
  <pre><code>SELECT string, 
  LENGTH(string) AS length 
      FROM tbl 
          WHERE REGEXP_LIKE(string,'^[0-9]+{3,}[-+]?[A-Z]?[a-z]?$')
      ORDER BY length;
  </code></pre>
  
  <p>Thanks!</p>