all pins on arduino used up can same code be put into 4 x shift registers

I have the following code to be used inside a star trek voyager kit, and this is, for what I call the left hand side phaser strip using 13 leds. at the moment of course every output led pin is used on the uno. now I would like to do (with a fourth/fifth and sixth button press), control a separate right hand bank of 13 led's, but with exactly the same sequence. originally thought of using two separate tinys and two p/b's ,one for left hand bank and one for the right. or is it possible to use 4x 595 shift registers and write one code to do all 6 sequences with a single button press?

// Project 1 - press button once to get 11 leds flowing from both ends and meeting in the middle led no.8  then fire a delay
// (for phaser bank array on voyager model kit)
// press button twice to get same effect but stopping at a different set point i.e led no.5 
// press button third time to get same effect but at a third different point off
// each button press to run once only

int switchPin = 2; // switch is connected to pin 2
 int led3Pin = 3;
 int led4Pin = 4;
 int led5Pin = 5;
 int led6Pin = 6;
 int led7Pin = 7;
 int led8Pin = 8;
 int led9Pin = 9;
 int led10Pin = 10;
 int led11Pin = 11;
 int led12Pin = 12;
 int led13Pin = 13;

 int val; // variable for reading the pin status
 int val2;  // variable for reading the delayed status
 int buttonState;  // variable to hold the button state
 int Mode = 0;     // What mode is the light in?
 boolean modeChanged = false;
 const int NUM_MODES = 4;

 void setup() {
 pinMode(switchPin, INPUT); // Set the switch pin as input
 pinMode(led3Pin, OUTPUT);  // set led pins to output 3 to 13
 pinMode(led4Pin, OUTPUT);
 pinMode(led5Pin, OUTPUT);
 pinMode(led6Pin, OUTPUT);
 pinMode(led7Pin, OUTPUT);
 pinMode(led8Pin, OUTPUT);
 pinMode(led9Pin, OUTPUT);
 pinMode(led10Pin, OUTPUT);
 pinMode(led11Pin, OUTPUT);
 pinMode(led12Pin, OUTPUT);
 pinMode(led13Pin, OUTPUT);
 buttonState = digitalRead(switchPin); // read the initial state
}

void loop(){
  val = digitalRead(switchPin);  // read input value and store it in val
  delay(10);                     // 10 milliseconds is a good amount of time
  val2 = digitalRead(switchPin); // read the input again to check for bounces
  if  (val == val2)  {            // make sure we got 2 consistent readings!
   if (val != buttonState) {      // the button state has changed!
    if (val == LOW) {             // check if button pressed
      Mode++;
      if (Mode >= NUM_MODES) {
        Mode = 0;
      }
      modeChanged = true;
    }
   }
  
buttonState = val;       // save the new state in our variable
  }
  if (modeChanged) {
    modeChanged = false;
  

  // now do whatever the lightmode indicates
switch(Mode) {
  case 0:

  digitalWrite(led3Pin, LOW);
  digitalWrite(led4Pin, LOW);
  digitalWrite(led5Pin, LOW);
  digitalWrite(led6Pin, LOW);
  digitalWrite(led7Pin, LOW);
  digitalWrite(led8Pin, LOW);
  digitalWrite(led9Pin, LOW);
  digitalWrite(led10Pin, LOW);
  digitalWrite(led11Pin, LOW);
  digitalWrite(led12Pin, LOW);
  digitalWrite(led13Pin, LOW);
  break;
  
 case 1:  
digitalWrite(led3Pin, HIGH);// turn far right led on
digitalWrite(led13Pin,HIGH);// Turn far left led on
delay(50); // wait 50 milliseconds

digitalWrite(led3Pin, LOW);// Turn first set of leds off
digitalWrite(led13Pin,LOW);

digitalWrite(led4Pin, HIGH);// and repeat for LED 4 to 13
digitalWrite(led12Pin, HIGH);
delay(50);

digitalWrite(led4Pin, LOW);
digitalWrite(led12Pin, LOW);

digitalWrite(led5Pin, HIGH);
digitalWrite(led11Pin, HIGH);
delay(50);

digitalWrite(led5Pin, LOW);
digitalWrite(led11Pin, LOW);

digitalWrite(led6Pin, HIGH);
digitalWrite(led10Pin, HIGH);
delay(50);

digitalWrite(led6Pin, LOW);
digitalWrite(led10Pin, LOW);

digitalWrite(led7Pin, HIGH);
digitalWrite(led9Pin, HIGH);
delay(50);

digitalWrite(led7Pin, LOW);
digitalWrite(led9Pin, LOW);

digitalWrite(led8Pin, HIGH);     // central led turn on and delay
delay(50);

digitalWrite(led8Pin, LOW);    // turn central led off after delay
delay(200); // then delay off time

digitalWrite(led8Pin, HIGH);   // turn central led back on for phaser fire
delay(1000);// then hold on for set time as phaser fires

digitalWrite(led8Pin,LOW);   // then turn off central led
break;

case 2:


  digitalWrite(led3Pin, HIGH);
  digitalWrite(led13Pin, HIGH);
  delay(50);

  digitalWrite(led3Pin, LOW);
  digitalWrite(led13Pin, LOW);

  digitalWrite(led4Pin, HIGH);
  digitalWrite(led12Pin, HIGH);
  delay(50);

  digitalWrite(led4Pin, LOW);
  digitalWrite(led12Pin, LOW);

  digitalWrite(led11Pin, HIGH);
  delay(50);

  digitalWrite(led11Pin, LOW);

  digitalWrite(led10Pin, HIGH);
  delay(50);

  digitalWrite(led10Pin, LOW);

  digitalWrite(led9Pin, HIGH);
  delay(50);

  digitalWrite(led9Pin, LOW);

  digitalWrite(led8Pin, HIGH);
  delay(50);

  digitalWrite(led8Pin, LOW);

  digitalWrite(led7Pin, HIGH);
  delay(50);

  digitalWrite(led7Pin, LOW);

  digitalWrite(led6Pin, HIGH);
  delay(50);

  digitalWrite(led6Pin, LOW);

  digitalWrite(led5Pin, HIGH);
  delay(50);

  digitalWrite(led5Pin, LOW);
  delay(200);

  digitalWrite(led5Pin, HIGH);
  delay(1000);

  digitalWrite(led5Pin, LOW);
  break;

case 3:

digitalWrite(led3Pin, HIGH);
  digitalWrite(led13Pin, HIGH);
  delay(50);

  digitalWrite(led3Pin, LOW);
  digitalWrite(led13Pin, LOW);

  digitalWrite(led4Pin, HIGH);
  digitalWrite(led12Pin, HIGH);
  delay(50);

  digitalWrite(led4Pin, LOW);
  digitalWrite(led12Pin, LOW);

  digitalWrite(led5Pin, HIGH);
  delay(50);

  digitalWrite(led5Pin, LOW);

  digitalWrite(led6Pin, HIGH);
  delay(50);

  digitalWrite(led6Pin, LOW);

  digitalWrite(led7Pin, HIGH);
  delay(50);

  digitalWrite(led7Pin, LOW);

  digitalWrite(led8Pin, HIGH);
  delay(50);

  digitalWrite(led8Pin, LOW);

  digitalWrite(led9Pin, HIGH);
  delay(50);

  digitalWrite(led9Pin, LOW);

  digitalWrite(led10Pin, HIGH);
  delay(50);

  digitalWrite(led10Pin, LOW);

  digitalWrite(led11Pin, HIGH);
  delay(50);

  digitalWrite(led11Pin, LOW);
  delay(200);

  digitalWrite(led11Pin, HIGH);
  delay(1000);

 digitalWrite(led11Pin, LOW);
    
  }
}

}

Yes that is totally possible. If you want to be real slick, you can drive shift registers with the SPI hardware using pins 10 - 13. That's way way faster than bit-banging it like shiftOut uses if you have other things for the micro to do.