Tu primer func es casi correcto. Simplemente elimine la bandera 'g' que significa 'global' (editar) y dele un poco de contexto para detectar la segunda 'r'.
Editar: no vi que era la segunda 'r' antes, así que agregué '/'. Necesita \ / para escapar del '/' cuando se utiliza un argumento regEx. Gracias por los votos a favor, pero me equivoqué, así que arreglaré y agregaré más detalles para las personas interesadas en comprender mejor los conceptos básicos de regEx, pero esto funcionaría:
mystring.replace(/\/r/, '/')
Ahora para la explicación excesiva:
Al leer / escribir un patrón regEx, piense en términos de: <un carácter o conjunto de caracteres> seguido de <un carácter o conjunto de caracteres> seguido de <...
En regEx <un carácter o conjunto de caracteres> podría ser uno a la vez:
/each char in this pattern/
Entonces lea como e, seguido de a, seguido de c, etc.
O un <carácter o conjunto de caracteres> podría ser un carácter descrito por una clase de caracteres:
/[123!y]/
//any one of these
/[^123!y]/
//anything but one of the chars following '^' (very useful/performance enhancing btw)
O ampliado para que coincida con una cantidad de caracteres (pero aún así es mejor pensarlo como un elemento único en términos del patrón secuencial):
/a{2}/
//precisely two 'a' chars - matches identically as /aa/ would
/[aA]{1,3}/
//1-3 matches of 'a' or 'A'
/[a-zA-Z]+/
//one or more matches of any letter in the alphabet upper and lower
//'-' denotes a sequence in a character class
/[0-9]*/
//0 to any number of matches of any decimal character (/\d*/ would also work)
Así que haz un montón juntos:
var rePattern = /[aA]{4,8}(Eat at Joes|Joes all you can eat)[0-5]+/g
var joesStr = 'aaaAAAaaEat at Joes123454321 or maybe aAaAJoes all you can eat098765';
joesStr.match(rePattern);
//returns ["aaaAAAaaEat at Joes123454321", "aAaAJoes all you can eat0"]
//without the 'g' after the closing '/' it would just stop at the first match and return:
//["aaaAAAaaEat at Joes123454321"]
Y, por supuesto, he elaborado demasiado, pero mi punto era simplemente que esto:
/cat/
es una serie de 3 elementos de patrón (una cosa seguida de una cosa seguida de una cosa).
Y así es esto:
/[aA]{4,8}(Eat at Joes|Joes all you can eat)[0-5]+/
Tan extraño como comienza a parecer regEx, todo se descompone en una serie de cosas (cosas potencialmente de varios caracteres) que se suceden secuencialmente. Un punto básico, pero que me llevó un tiempo superar, así que me he pasado de la raya explicándolo aquí, ya que creo que es uno que ayudaría al OP y a otros nuevos en RegEx a comprender lo que está sucediendo. La clave para leer / escribir regEx es dividirlo en esas piezas.