The current string templates, e.g.
YYYY-MM-DDThh:mm:ss[,sss][Z | ±hh[mm]]
as seen in the various ISO8601 classes starting here: http://www.openehr.org/releases/RM/latest/docs/support/support.html#_iso8601_time_class
are not clear with respect to fractional seconds (which can be any number of digits from 1 to 6) and also not formal, as would be a regex.
Also, the current ISO8601_TIMEZONE does not support ':' in extended format, but this is required by the standard.