title: Angular: ng-pattern validation being overriden by min/maxlength
body: <p>Not sure if I'm missing something or if this is an actual bug.
  I'm running angular 1.2.9 (We still support IE8) and I'm building a form that is dynamically generated by an object.</p>
  
  <pre><code>&lt;input ng-maxlength="{{data.MaxLength}}"
             ng-minlength="{{data.MinLength}}"
             ng-required="data.Required"
             ng-pattern="/[a-zA-ZàáâäãåèéêëìíîïòóôöõøùúûüÿýñçčšžÀÁÂÄÃÅÈÉÊËÌÍÎÏÒÓÔÖÕØÙÚÛÜŸÝÑßÇŒÆČŠŽ∂ð \-']+/"
             ng-switch-when="input"
             type="{{data.Type}}"
             ng-model="formData[data.Name]" 
             name="{{data.Name}}" /&gt;
  
  &lt;p ng-if="form[data.Name].$error.pattern"&gt;
          {{data.PatternValidationMessage}}
      &lt;/p&gt;
      &lt;p ng-if="form[data.Name].$error.maxlength || form[data.Name].$error.minlength"&gt;
          {{data.LengthValidationMessage}}
      &lt;/p&gt;
      &lt;p ng-if="form[data.Name].$error.required"&gt;
          {{data.RequiredValidatorMessage}}
      &lt;/p&gt;
  </code></pre>
  
  <p>So, I'm expecting to show a message if the pattern doesn't match, if the field is not filled and if the input doesn't match a min or max criteria.</p>
  
  <p>The problem:</p>
  
  <p>If I just type <code>"@[]"</code> it triggers the pattern validation message, but if I type <code>"@[][]abc"</code> it cleans all the error messages, and adds a class of <code>ng-valid-pattern</code>(and it is obviously invalid).</p>
  
  <p>Its like it only matches one at a time, or that it thinks that the pattern is valid when the input has <code>"abc"</code>.</p>
  
  <p>Any help will be appreciated!</p>