This problem was originally given in "Introduction to Automata Theory, Languages and Computation" by John E. Hopcroft and Jeffrey D. Ullman as Exercise 4.3.
$$ \text {Let }b_i \text{ denote } i \text{ in binary without leading zeros.}$$ We need to construct a CFG which generates the following language: $$ \{0, 1, 2\}⁺ - \{b_12b_22...2b_n | \text{n is a whole number}\} \text{.} $$
Firstly, I considered implementing such non-terminal $$ U \mid \forall \text{whole n}. S \Rightarrow^+ U \Rightarrow^+ b_12b_22...2b_n\text{.} $$ I believe that even if this could be done, it would have a fairly cumbersome structure: $$ \{b_12b_22...2b_n | \text{n is a whole number}\} $$ does not satisfy the Pumping lemma, therefore, is not a CFL. For the same reason, I can't see any way to apply any neat theorems like $$CFL - RL = CFL\text{.}$$
How could one construct such a grammar? I would really appreciate some hints, which could help me solve the problem, instead of a complete solution.