たとえば、html の class 属性に色をつけて出力する場合
sample.rb
colored = string.dup
colored.gsub!(/class\s*=\s*["'][^'"]*['"]/) {"\033[31m#{$&}\033[0m"}
print colored
gsub のブロック内では $& でマッチした文字列を取り出すことができる。
その、マッチした文字列の前後にターミナル上で色をつけるためのエスケープシーケンス\033[31m
と、色をリセットするシーケンス\033[0m
で囲むことでパターンにマッチした文字列に色を付けることができる。