Вы заставляете его отрубить последний символ этой частью вашего регулярного выражения:
[^_e|_i]
Что переводится как: любой отдельный символ, кроме "_"
, "e"
, "|"
, "i"
.
"y"
в "Lobby"
соответствует этому критерию.
Вы имеете в виду "not _e"
и "not _i"
, очевидно, но это не способ выразить это. Это было бы правильно:
(\d+)_(.+)(?<!_[ei])\.jpg
Обратите внимание, что точку необходимо экранировать в регулярных выражениях.