Expressing Rebol Dates in EBNF
Is Janua really a valid month? If so, then you're fine, but I have a feeling that this would be more appropriate. 

DateMonthJanuary ::= 'January' | 'Jan' | '0'? '1'


Which brings me to my next problem. It's case sensitive, right? So, 22-JAN-2015 wouldn't match. I believe it should, but I'm not familiar with Robol. Please correct me if I'm wrong. 

I've seen this handled by defining case insensitive tokens for each letter. 

A ::= 'a' | 'A'


And then define your rules from those tokens like this. 

DateMonthJanuary ::= J A N U A R Y | J A N | '0'? '1'


My syntax may be a little off, I'm accustomed to ANTLR's flavor of EBNF, but that should illustrate the idea. 


DateYearLeap ::= 



I'm really not sure that I would handle that in your grammar. The logic is convoluted (not yours, just leap years in general) and I'm pretty sure this will match a few leap years that aren't. Much better for this one to be validated by your parser if that's possible. 


/* Need to constrain to valid hours */
TimeHour ::= Sign Digit* | Sign? Digit+

/* Need to constrain to 0-59 */
TimeMinute ::= Sign? Digit Digit?

/* Need to constrain to 0-59.999999 */
TimeSecond ::= Sign? ((Digit Digit?)? '.' Digit+ | Digit Digit? '.'?)



I think you should be able to define tokens for these. It may take a bit of doing to get the precedence right, but start with something like this. 

TimeMinute ::= Sign? [0-6] Digit
/* Optional Sign, Optional 10s Digit 0-6, 0-9*/