Средство проверки RegularExpression не совсем то, что вам нужно. Вы хотите проверить PenguinGenome на основе значения другого свойства модели. Другими словами - здесь вам не нужна проверка свойств, а проверка модели.
Вы можете использовать атрибут проверки с учетом модели, но лично я бы не стал - потому что он «скрывает» зависимость (никто не может сказать, глядя на класс модели, что проверка PenguinGenome зависит от PenguinSpeciesId). Я бы предпочел использовать IValidatableObject здесь.