title: Regex matches non-matching group
body: <p>I want to match some names within an fullname, which is the name + certain information like year of release or author.
  I want to get the realName within the fullName.</p>
  
  <pre><code>[author1] Shuu [Digital]
  [author1] Paradise ~★  Special Edition
   (magazin) [kulmov_ (Kurowa)] Channel (Fate/Grand Order) [Chinese] [*'N]
  (COMIC1☆7) [ComicCon] X-Men!! (Marvel)
  (magazin) [Rave (Jacky)] SPLASH 11 (Microsoft)
  [anotherauthor] name1 | name2 (Hatsujou Complex) [English]
  [author7 (aurhot234)] Connect (Project) [Digital]
  [author3] ~Hellverse~ (COMICcon 2017)
  [author4] Escape [English] [Decensored]
  </code></pre>
  
  <p>What I found is that the name is nearly always after an "]" or an ")". Then there is an whitespace and then the name. After the name is an whitespace and either nothing or "(" or "[".
  The name can contain some non-ASCII ? symbols. The full name can contain japanic symbols.</p>
  
  <p>I have found:</p>
  
  <pre><code>]\s+(.+)+\s*[\(|\[|\s]*
  </code></pre>
  
  <p>I have no idea why but it does match from the "]" util the very end of the string including the whitespaces.
  But as I see it, it should only match everything after "]", grab the realName and then stop after it finds an "(" or "[".</p>
  
  <p>How do I fix that?</p>