Another great tool for movement is next-error, bound to C-x ` by default, though I bind it to M-` for convenience. Despite its name, it's not just useful for jumping to error locations in source code. It also jumps to matches from M-x occur and M-x rgrep, making it very easy to hop around from one regex match to another. A negative prefix argument can be used to navigate in the reverse direction, in case you go too far.