O átomo \&
não faz o que você acha que faz. Permite combinar duas partes de expressões regulares na mesma posição . Para que as duas sequências correspondam na mesma linha, você precisa permitir um número arbitrário de caracteres antes dos jogos. Este é o padrão: /.*red\&.*blue/
Para o seu exemplo:
/.*\<hello world\>\&.*\<goodbye world\>/