\1
в двойных кавычках необходимо экранировать. Итак, вы хотите либо
"Z_sdsd: sdsd".gsub(/^(Z_.*): .*/, "\\1")
или
"Z_sdsd: sdsd".gsub(/^(Z_.*): .*/, '\1')
см. документы на gsub , где написано "Если это строка в двойных кавычках, обеим обратным ссылкам должна предшествовать дополнительная обратная косая черта."
При этом, если вы просто хотите получить результат матча, вы можете сделать:
"Z_sdsd: sdsd".scan(/^Z_.*(?=:)/)
или
"Z_sdsd: sdsd"[/^Z_.*(?=:)/]
Обратите внимание, что (?=:)
- это группа без захвата, поэтому :
не отображается в вашем матче.