Looping for a set amount of times.

I'd say you were close:

while (buttonMode == 3) {
  int i = 0;
  while( i<5){
    
  Serial.println(i);
    
  digitalWrite(7, LOW);
  digitalWrite(8, LOW);
  digitalWrite(9, LOW);
  delay(400);

  digitalWrite(7, HIGH);
  digitalWrite(8, HIGH);
  digitalWrite(9, HIGH);
  delay(400);
  i=i+1;
  }
button = 4;
}

stay in the inner loop, when done change the outer loop condition so it jumps out