Ваши два регулярных выражения не эквивалентны. Первый правильный, а второй нет. Чтобы увидеть разницу, используйте дистрибутивное свойство конкатенации:
r1 = 1*0*011*0*
r2 = (1* U 0*)01(1* U 0*)
= 1*011* U 1*010* U 0*011* U 0*010*
Обратите внимание, что r2 - это объединение четырех подвыражений, каждое из которых описывает язык. Каждый из описанных языков является подмножеством языка r1:
1*0*011*0* 1*0*011*0* 1*0*011*0* 1*0*011*0*
1* 011* 1* 01 0* 0*011* 0*01 1*
Следовательно, L (r2) является подмножеством L (r1). В комментариях уже указывалось, что L (r1) не является подмножеством L (r2), контрпример (рассмотрим строку 0110).
Чтобы убедиться, что r2 верен, сначала обратите внимание, что любая строка в L (r2) на вашем языке (единственное вхождение 01 находится в середине выражения, и выражение должно его сгенерировать), а затем утверждают, что любая строка с ровно одним 01 должна быть сгенерирована этим выражением. Индуктивный аргумент прост и оставлен в качестве упражнения.