4 of 4 added 8 characters in body

If you haven't GNU grep available, here is something more portable:

  esc=$(printf "\033")
  sed 's"'"$pattern"'"'$esc'[32m&'$esc'[0m"g' "$@"

You can customize the color using one of these codes

30m black
31m red
32m green
33m yellow
34m blue
35m magenta
36m cyan
37m white

Using 7m instead of a color code will put the string in reverse video.