Option D is regular because at max we need to count till 1 million which though large is STILL a finite number.
Option A is not regular. This can be proved using pumping lemma or intuitively we can consider an input string going like $000000\ldots$ Now to match the following $11’s$ we need to maintain the count of “00’s” which can go to an infinite value.
Like option A, option C is also not regular. Instead of “000000\ldots” just replace with “01010101\ldots”.
But option B is different. It is in fact regular. This is because if we consider a sequence like “01010101\ldots” having say $n$ number of “01”s, the sequence will also have $n-1$ number of “10”s making the difference of “01” and “10” just “1”. This is in fact true for any binary string – the difference of the number of “01” and “10” will be either “0”, “1” or “-1”. So, a finite automata can accept this language. The language asked is equivalent to any binary string starting and ending with the same bit. Regular expression for this is $0(0+1)^*0 + 1(0+1)^*1+ 1 + 0 + \epsilon$
So, correct answer: B, D.