Strange RX Port Behavior

with if (Serial.available())

Here is a sketch that might make what I am trying to do more clear:

#include <SoftwareSerial.h>

SoftwareSerial BTSerial(10, 4); // RX | TX
    
const int SOFTWARE_LED = 9;
const int REGULAR_LED = 12;

void setup(){
    BTSerial.begin(9600);
    Serial.begin(9600);
    
    pinMode(SOFTWARE_LED, OUTPUT);
    pinMode(REGULAR_LED, OUTPUT);
}

void loop(){    
    //If there is data in SoftwareSerial, blink
    if(BTSerial.available()){
        while(BTSerial.available()){
            digitalWrite(SOFTWARE_LED, HIGH);
            BTSerial.read();
            delay(50);
        }
        digitalWrite(SOFTWARE_LED, LOW);
    }

    //If there is data in Serial, blink
    if(Serial.available()){
        while(Serial.available()){
            digitalWrite(REGULAR_LED, HIGH);
            Serial.read();
            delay(50);
        }
        digitalWrite(REGULAR_LED, LOW);
    }
}