Вы можете просто удалить начальный и конечный символы и проверить, совпадают ли они в любое время, может быть похоже на:
$re = '/(2[0-3]|[01]?[0-9]):([0-5]?[0-9])/m';
$date = '09:00 - 10:00';
preg_match_all($re, $date, $matches, PREG_SET_ORDER, 0);
foreach ($matches as $value) {
echo $value[0] . " is a match \n";
}
выход
09:00 is a match
10:00 is a match
Объединение RegEx
Если вы хотите объединить два регулярных выражения, вы можете просто использовать логическое ИЛИ и поместить свои выражения в две группы захвата:
(expression 1)|(expression 2)