let nameSubstance = document.getElementById("volume").value; (1)
//if(nameSubstance.length <= 5){ (2)
if(nameSubstance.value.match(/^TEST$/) == null ){ (3)
(1) pobierasz wartość
(2) sprawdzasz długość wartości - zakomentowane, więc przypuszczam że działa, a więc (1) zadziałała poprawnie
(3) a więc dlaczego tutaj dopisujesz kolejne .value?
tworzy się w kodzie coś takiego:
document.getElementById("volume").value.value
drugie .value pewnie jest undefined, więc match nie może zadziałać. Usuń to niepotrzebne .value
P.S.
osiągnołeś max ilość znaków"
tego pierwszego wyrazu się tak nie pisze. :P