I am trying to create a context free grammar in [Extended Backus–Naur form][1], which starts with a non-empty sequence of `A`'s and is followed by a non-empty sequence of `B`'s. With the special condition that the number of `B`'s has to be **unequal** to the number of `A`'s. Thus, the grammar should generate words like: * `AAAABBB` * `AAABB` * `ABBB` --- So basically I could do something like this: $\ G=(N,T,P,Sequence)$ $\ N = \{Sequence\}$ $\ T = \{A,B\}$ $\ P = \{Sequence=AA(Sequence|\epsilon)B\}$ But then the words would always have $\ 2n$ `A`'s and n `B`'s: * `AAB` * `AAAABB` * `AAAAAABBB` So how is it possible to make the number of `A`'s **uncorrelated** of the number of `B`'s, without being equal? # Update [This question][2] was suggested as a duplicate. But it's not quite what I want. So I posted my own solution as an answer below. [1]: https://en.wikipedia.org/wiki/Extended_Backus%E2%80%93Naur_form [2]: https://cs.stackexchange.com/questions/9804/context-free-grammar-for-language-l-aibj-mid-i-j-ge-0-i-ne-2j