If i type, for example, y/foo<CR> in Normal mode, i yank all the text until the next occurrence of foo without side effects.  However, if i type y?foo<CR> in Normal mode, i yank the text alright, but unfortunately the cursor jumps to the occurrence of foo.Is this the expected behavior?  Is there an easy workaround?
Backward motions in Operator-pending mode move cursor
cursor movement
The yank command always places the cursor at the start of the yanked text. If you use operator-pending backwards search, you basically have a reverse selection, with the jump target before the start.As the '] mark has the end of the executed yank, you can return to that original cursor position via g`].