PEG по умолчанию являются жадными и слепыми, это означает, что они потребляют столько информации, сколько могут, и не учитывают, что будет потом:
S <- P1* P2
(жадный, слепой)
Это может быть легко исправлено, если использовать упорядоченный выбор (и без использования заглядываний):
S <- P1 S / P2
(жадный, не слепой)
S <- P2 / P1 S
(ленивый, не слепой)