title: java.lang.StackOverflowError while using a RegEx to Parse big strings
body: <p>This is my Regex</p>
  
  <pre><code>((?:(?:'[^']*')|[^;])*)[;]
  </code></pre>
  
  <p>It tokenizes a string on semicolons. For example,</p>
  
  <pre><code>Hello world; I am having a problem; using regex;
  </code></pre>
  
  <p>Result is three strings</p>
  
  <pre><code>Hello world
  I am having a problem
  using regex
  </code></pre>
  
  <p>But when I use a large input string I get this error</p>
  
  <pre><code>Exception in thread "main" java.lang.StackOverflowError
  at java.util.regex.Pattern$GroupHead.match(Pattern.java:4168)
  at java.util.regex.Pattern$Loop.match(Pattern.java:4295)
  at java.util.regex.Pattern$GroupTail.match(Pattern.java:4227)
  at java.util.regex.Pattern$BranchConn.match(Pattern.java:4078)
  at java.util.regex.Pattern$CharProperty.match(Pattern.java:3345)
  at java.util.regex.Pattern$Branch.match(Pattern.java:4114)
  at java.util.regex.Pattern$GroupHead.match(Pattern.java:4168)
  at java.util.regex.Pattern$Loop.match(Pattern.java:4295)
  at java.util.regex.Pattern$GroupTail.match(Pattern.java:4227)
  </code></pre>
  
  <p>How is this caused and how can I solve it?</p>