Załącz całą regułą walidatora, będzie łatwiej potestować.
Jeśli używasz tych wyrażeń dokładnie tak jak napisałeś to pierwsze zezwala na dokładnie jeden znak z podanego zakresu.
W drugim chyba pomyliłeś / z \.
Moja reguła do haseł:
array('newPassword', 'match', 'pattern' => '/^.*(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).*$/', 'message' => Yii::t('UsrModule.usr', 'New password must contain at least one lower and upper case character and a digit.')),
Wymaga przynajmniej jednej cyfry, małej i dużej litery.
Znak zapytania i = w bloku (?=.*\d) oznacza "wyszukiwanie do przodu" i wymaga ciągu dowolnych znaków po których jest jedna cyfra.