grammars

How to deal with overlapping character groups in different tokens in an EBNF grammar?

I'm using an LL(k) EBNF grammar to parse a character stream. I need three different types of tokens: CHARACTERS letter = 'A'..'Z' + 'a'..'z' . digit = "0123456789" . messageChar = '\u0020'..'\u007e' - ' ' - '(' - ')' . TOKENS num = ['-'] digit { digit } [ '.' digit { digit } ] . ident = letter { letter | digit | '_' } . ...

Is this an ambiguous grammar? How should I resolve it?

To preface this, my knowledge of this kind of stuff is puny. Anyways, I've been developing a context-free grammar to describe the structure of alegbraic expressions so I can teach myself how the CYK parsing algorithm works. I understand how such a structure can work with only infix algebraic expressions, but I cannot understand how to d...