Потому что некоторые задачи имеют дело с
повторениями.
Повторения - худшее из того, что мешает искать подстроки. В вашем примере нет повторений, то есть E не может быть цифрой, и наоборот.
Однако что если вам нужно найти все цифры между двумя E?
Вот такие:
E
123ExxxE
456E
789E
По вашей логике нужно выражение:
/E(\d+)E/
И да, оно действительно найдёт 123 и 456 (см. ссылку), но на 789 оно сломается, потому что там E входит как бы сразу в две подстроки. В этом случае и нужен позитивный просмотр вперёд. Мы как бы подсматриваем, что там впереди, но не захватываем, поэтому поиск следующей подстроки начинается раньше.
Для такой задачи решением будет:
/E(\d+)(?=E)/