In L1 any string “w” must satisfy the condition:

**{Number of occurrences of (110)} ≥ {Number of occurrences of (011)}**

Lets analyse the language, consider a string in which occurrence of (110) is more than one.

The following possibilities are: {1100110, 1101110, 110110, ….}

Please observe whenever strings start with “11” then in every situation whatever comes after “11” the string will never violate the condition. So strings of the form **11(0+1)*** will always satisfy the condition.

Consider a string in which occurrence of (011) is more than one.

The following possibilities are: {011011, 0111011, 0110011, ….}

In the following possibilities please observe that number of occurrence “011” is two but number of occurrence of (110) is one, which violate the conditions.

If we add “0” in every string mentioned above, i.e. {0110110, 01110110, 01100110, ….} Now, observe that number of occurrence “011” and the number of occurrence of (110) both are equal, which satisfies the conditions.

With these analysis, we can make the DFA , which is mentioned below.

But language L2 requires infinite comparison to count the occurrences of (000’s) and (111’s), hence it is not regular.