Ruby regex gsub wiersz w pliku tekstowym

Muszę dopasować linię w wprowadzonym łańcuchu tekstowym i zawinąć przechwyconą linię np. Znakiem.

Na przykład wyobraź sobie plik tekstowy jako taki:

test
foo
test
bar

Chciałbym użyć gsub do wyjścia:

XtestX
XfooX
XtestX
XbarX

Mam jednak problem z dopasowaniem linii. Próbowałem użyć wyrażenia regularnego zaczynającego się od ^ i kończącego na $, ale nie działa. Jakieś pomysły?

Mam plik tekstowy, który zawiera następujące elementy:

test
foo
test
bag

Plik tekstowy jest odczytywany jako argument wiersza poleceń.

Więc mam

string = IO.read(ARGV[0])
string = string.gsub(/^(test)$/,'X\1X')

puts string

Wyprowadza dokładnie to samo, co w pliku tekstowym.

questionAnswers(5)

yourAnswerToTheQuestion