ruby 1.8.0 で、ある記号処理をしてる。
行を読み、"|" で区切られた部分に分けたい。

s = "1|2|3"
a = s.scan(/[^|]*\|?/)
p a

→["1|", "2|", "3", ""]

"3" までは期待通りだけど、最後の "" の意味が判らん。何にマッチしたの?
今は [-2] の末尾が区切り文字じゃない時、[-1] が空文字列なら pop して誤魔化してる。
正規表現、scan の仕様に詳しい人教えて下さい。