r"
#Modifiers << NOT GOING TO DO THESE HERE.
#∂ Before After Until in?Between
#∂ onwards
#Time-Time << Don't need as both times will match
#Lonely HOURS List: 10,time or 12 <not going to do this
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# - - - - - - - - - - - BIG TIME REGEX - - - - - - - - - - - -
#LONELY HOURS
#These guys are just \d\d. So we identify them through proximity to known times
(?:
#Boundary Lookaround
(?<=[ ]|^|[^\d\.:\r\n$£-])
#hour - you always have hours
(?:1[0-9]|2[0-4]|0?[0-9])
(?:
#Hour [or / to - , and]
#People don't say "12pm or 3?" much. Build it if it comes up.
(?:[ ]? (?:or|[,/-]|to|and) [ ]?)
)
){0,3}
#TIME BASICS:
#Basic times that are definitely times. Have to come last so longer strings match first.
#Boundary Lookaround (BREAK THIS FOR THE LONELY NUMBERS)
# (?<=[ ]|^|[^\d\.:\r\n$£-])
#hour - you always have hours
( (?:1[0-9]|2[0-4]|0?[0-9]) )
#Clarifier. Minutes, AM|PM, a TimeZone or a combination.
(
#Minutes
(?:[ ]?[\:\. ][ ]?) ([0-5][0-9])
#AM|PM