You really should add that Apache advises that the metacharacter (within a character range definition), the "-", should be the first character within the range definition so it can be understood to be the character (rather than the metacharacter used to define a range of characters). Under common usage, however, Apache accepts the - as the last character in the range (as vineet has in his code snippet).
WARNING: The references to the regex book and article are fine but mod_rewrite only uses a rather small and very basic subset of regex BECAUSE the Apache variables are not multi-line, they are not formatted (italic, bold, etc) and they must fit the format of the variable as required by Apache. That makes learning the subset used by mod_rewrite a relatively trivial task.
As for the definitive book on regex, let me recommend what most consider the bible on this subject: Jeffrey Friedl's "Mastering Regular Expressions" which is published by O'Reilly.