moveLeft() now supports arbitrary patterns