SINCE THE QUESTION ASKS FOR "STRINGS WITH EXACTLY TWO 1S" :
We solve as follows:
(A) and (D) options we see that it has (0+1)* which means that it can generate any no of 1s and 0s combination which completely violates our condition so both are wrong
Now coming to (B) and (C), IN (B) the 1s are forced nex to each other which means it misses on strings which has two 1s but both 1s are not together hence (C) is correct
The language is defined as: "All strings over {0,1} that contain exactly two 1's."
Let's look at some valid strings that perfectly satisfy this definition:
String 1: 101 (It has exactly two 1's)
String 2: 01010 (It has exactly two 1's)
String 3: 10001 (It has exactly two 1's)
Now, try to generate any of these three strings using Trap B (0*110*):
By forcing the 1's to stick together, Trap B completely leaves out an infinite number of valid strings where the two 1's are separated by zeroes.
SUMMARY:
What 0*110* describes: The language of strings containing exactly two 1's that must appear consecutively (right next to each other).
What 0*10*10* describes: The true language of strings containing exactly two 1's anywhere in the string, separated by any number of zeroes.
When a regular expression leaves out valid strings that belong to the definition, it is incorrect, even if every string it does manage to generate happens to be legal!