no necesitas usar ambas funciones. por lo que pude analizar, lo que quieres hacer es como un trim pero personalizado. con la expresion regular y el replace te basta. replace toma efecto solo si el patrón encuentra coincidencias, por lo que en los casos bien siemples no es necesario una condición if.
si quieres hacerlo solo con substring, el proceso es algo más elaborado comparado con expresiones regulares. tendrias que determinar si al menos los primeros dos caracteres son de la secuencia 0 4 utilizando los indices del string. lo mismo para los ultimos dos caracteres.
Código:
if(string.substring(0,2) == "04") string = string.substring(2,string.length);
if(string.substring(string.length-2, string.length) == "04") string = string.substring(0, string.length-2)