Set constraint, may be caused wrong result in non-UTF8 locales. Below fails in a current master. $ pattern=$(printf '^x\|\244\263') $ printf '\263\244\263\244\n' | env LC_ALL=ja_JP.eucJP src/grep "$pattern" && echo FAIL skip_remains_mb runs in only state 0, but it's wrong. Set constraint, may transit to a state besides state 0 after failure.