$ mksh -c 'v="foo!one!two!three"; IFS="!"; printf %s\? ${v#foo}; echo' ??one?two?three?
Expected output (as on all non-mksh shells): ?one?two?three?So field-splitting ${var#foo} on non-whitespace IFS creates an extra initial empty field.
(mksh R49 and earlier had a similar bug with whitespace IFS; as of R50 it only occurs with non-whitespace IFS.)
-- modernish -- harness the shell https://github.com/modernish/modernish