Регулярное выражение - код , выполняемое двигателем. С циклами, возвратами, исключениями, ...
Помимо специальных форм, каждый символ является инструкцией: "Match".
Следовательно, наиболее эффективное регулярное выражение, соответствующее 00010000010000
: 00010000010000
Псевдокодовые эквиваленты:
/* 00010000010000 */
read(0);
read(0);
read(0);
read(1);
read(0);
read(0);
read(0);
read(0);
read(0);
read(1);
read(0);
read(0);
read(0);
read(0);
/* 0{3}10{5}1 */
i=0
{read(0); i = i+1; if(i!=3) repeat;}
read(1);
i=0
{read(0); i = i+1; if(i!=5) repeat;}
read(1);
Я согласен, второй блок короче. Но это также дольше для выполнения, и в случае неудачи больше шагов для возврата