I'm assuming you are using the W3C notation: http://www.w3.org/TR/REC-xml/#sec-notation , not the standard ISO notation: http://en.wikipedia.org/wiki/Extended_Backus%E2%80%93Naur_Form .
If I'm wrong, then please specify which EBNF you're using!
In the W3C notation you can use this:
Digit ::= [0-9]
Letter ::= [A-Z]
GoodFormat ::= Digit+ "-" Letter+
Token ::= Digit | Letter | "-"
TooLong ::= Token Token Token Token Token Token+
ProductNo ::= GoodFormat - TooLong