(H{2})?
Соответствует нулю или двум символам H
.
Однако в вашем случае запись дважды будет более читаемой:
Regex dateRegex = new Regex(@"\{Date (HH)?:(MM)?:(ss)?\}");
Кроме того, убедитесь, что нет доступных функций для того, что вы пытаетесь сделать. Синхронизация дат довольно распространена, и большинство языков программирования имеют функции в своей стандартной библиотеке - я бы поставил 1к моей репутации, что .NET
тоже имеет такую функцию.