       )?
       (?:           # optional zone 
         (?:\s+|Z)     # zone delimiter
-        (?:
-          ([+-])      # sign
-          (\d{2})     # hours
+        (
+          [+-]      # sign
+          \d{2}     # hours
           (?:         # optional minutes
             :?          # optional colon
-            (\d{2})     # minutes
+            \d{2}       # minutes
           )?
         )
       )?

      # todays date. If we have a year, then we have a date with no day, so we
      # assume the first of the month.
      if not day?
        if not year?
          date.push now.getUTCDate()
        else
          date.push 1

      [ hours, minutes, seconds, milliseconds ] = time if time[0]?

      # See if we matched a zone offset.
      zone = match.shift()
      zoneOffset = offsetInMilliseconds(zone) if zone?

      # Stuff fater the matched ISO date.
      after = match.pop()
