yii2 Валидация регулярным выражением, rules(), Проверка уникальности, имя атрибута и значение в сообщения. Сложная проверка

Например проверим, что ИНН состоит из 12 цифр (принимаем как строку)

public function rules()
{
	$systemRules = [
		[['INN'],  'match', 'pattern' => '/^[0-9]{12}$/'], // проверка ИНН
		[['OGRN'], 'unique', 'targetAttribute' => ['OGRN'], 
			'message' => '{attribute} "{value}" уже занят. Задайте уникальный {attribute}'],
	];

	return   $systemRules;
}

Вообще правила могут быть комбинированными и очень сложными (уникально, обязательность заполнения, уникальность суммы нескольких полей и т.д.):

$systemRules = [
	[[ 'full_name', 'address'], 'required'],
	[['latitude', 'longitude'], 'number'],
	[['postcode'], 'string', 'length' => 6],
	[['federal_district_id', 'federal_subject_id', 'municipality_id', 
		'branch', 'INN', 'OGRN'],  'integer'],
	[['full_name'], 'string', 'max' => 300],
	[['short_name'], 'string', 'max' => 128],
	[['OKPO'], 'string', 'length' => 8, 'max' => 8],
	[['OKTMO'], 'string', 'max' => 11],
	[['INN'],  'string', 'length' => 12 ],
	[['OGRN'],  'string', 'length' => 13 ],      
	[['INN'],  'match', 'pattern' => '/^[0-9]{12}$/', 'message' => 'это не то 22!' ],
  //  [['INN'],  'string', 'max' => 8, 'message' => 'это не то!' ],
	[['OGRN'], 'match', 'pattern' => '/^[0-9]{13}$/'],
	[['KPP'], 'string', 'length' => 9],
	[['address'], 'string', 'max' => 255],
	[['helipads_ids', 'enroute_medical_services_ids'], 'safe'],
	['branch', 'default', 'value' => null],
	[['related_to_disaster_medicine_service'], 'boolean'],
	[['is_private_organization'], 'boolean'],
	[['OKPO', 'branch'], 'unique', 'targetAttribute' => ['OKPO', 'branch'], 
		'message' => '{attribute} "{value}" уже занят. ]',
	[['OGRN'], 'unique', 'targetAttribute' => ['OGRN'],
		   'message' => '{attribute} "{value}" уже занят.'
            . ' Задайте уникальный {attribute}'],
	[['INN', 'OKPO'], 'unique', 'targetAttribute' => ['INN', 'OKPO'], 
		 'message' => 'Значения ИНН + ОКПО должны быть уникальными.'
            . 'Указанные вами значения уже заняты в другими организациях.'],
	[['INN', 'KPP'], 'unique', 'targetAttribute' => ['INN', 'KPP'], 
			'message' => 'Значения ИНН + КПП должны быть уникальными.'
            . '  Указанные вами значения уже заняты в другими организациях.'],    
];