title: Regex address pattern
body: <p>I'm trying to create a regex pattern to find a german address (Street + Nr + ZIP + City)
  Exeample &quot;<em>Hauptstr. 5 - 59969 Hallenberg</em>&quot;</p>
  <p>I have an individual  pattern for Street + Nr (StreetNr)</p>
  <pre><code>@&quot;^\s*((?:(?:A[nm]|Auf|Vor|In|Im|Der|Dem|Die|Das|Bei|Alt|Zu[mr]?|Sk?t[.,]?[-_]?|Dr[.,]?[-_]?|Prof[.,]?[-_]?|De[-_]?)&quot; +
  @&quot;(?:\s*(?&gt;Sk?t[,.]?|und|von|der|dem|des|den|in\s?der))?\s?)?&quot; +
  @&quot;(?&gt;(?:[\w-[0-9]]{3}(?:[-_.,]|\s+))|(?:[\w-[0-9]](?:[/.,\w-[0-9]]){3,})|(?:[\w-[0-9]][/.,][-_]?\s?){1,4}\s*[\w-[0-9]]{3,})?\s?&quot; +
  @&quot;(?&gt;[-_]?\s?[/.\w-[0-9]]{2,}){0,5}\s*(?&gt;[-_]?\s?str\.{0,1}|17\.Juni|strasse|straße|platz|hof|weg|ring){0,1})\s*.&quot; +           
  @&quot;(\d{1,4}[a-z]?(?&gt;\s?[-_]\s?\d{1,4}[a-z]?)?)\s*$&quot;
  </code></pre>
  <p>and another one for ZIP + City (ZIPCity)</p>
  <pre><code> @&quot;^\s*(?:(?:D|DE)\s?[-_]?\s?){0,1}([0-9]{5})\s+([\w-[0-9]]+&quot; +
   @&quot;(?&gt;\s?[-_/]?\s?[\w-[0-9]]+){0,5})\s*$&quot;,
  </code></pre>
  <p><strong>1-</strong> What I First need is help with the ZIPCity pattern
  once the String is &quot;<em>59969 Hallenberg</em>&quot; the pattern match, but if there is any special char before the ZIP the pattern unfortunatly don't match
  What I need for example &quot; <em>- 59969  Hallenberg</em>&quot;, &quot; <em>-59969  Hallenberg</em>&quot; &quot;<em>- 59969  Hallenberg</em>&quot; or &quot;<em>59969  Hallenberg</em>&quot;
  I need to finde &quot;<em>59969  Hallenberg</em>&quot;.
  &quot;-&quot; is just an example as it could be any non alphanumeric character. and it should be optional</p>
  <p><strong>2-</strong> I need a combination of the two patterns to find the entire address &quot;<em>Hauptstr. 5 - 59969 Hallenberg</em>&quot;.
  It should only match if the address is complete (the alphanumeric character in the example &quot;-&quot; should always be optional).</p>