我很困惑为什么在以下示例#2中不起作用并且#3起作用。
#1. get `o` if immediately preceded by J
"Jones Bond".scan(/(?<=J)o/) #=> o
#2. get `o` if preceded by J anywhere. Since `J` occurs once I am using `+`
"James Bond".scan(/(?<=J)+o/) #=> [] empty
#3. get `o` if preceded by J anywhere zero or more times by using `*`
"James Bond".scan(/(?<=J)*o/) #=> o
我翻译lookbehindasleft-to-right和lookaheadasright-to-left很容易记住。这是对的吗?