Help with Arduino program

PaulS:

There's the debouncing problem though...

True, but what OP wanted to do in each mode was going to take time, so debouncing would be handled by that.

Yes, but I was thinking about having the led pattern implemented with a state machine, rather than using delay().

Anyway your code was a very good starting point. Let's see what the OP thinks about it.