Optional groups still count when unmatched