Strange. It looks as if sed is treating left and square brackets differently. I was able to get away without escaping the [, while sed refuses to work with ] without the an escape character. I eventually got what I want with adding escape characters to the left square bracket like below:

I am in the process of writing a python + shell script which will be handling files with numerous instances of both the square brackets. My question is whether the right and left square brackets are treated differently by sed or bash.

sed version is GNU sed version 4.2.1.

P.S.: I have decided to use escape characters with both the brackets to play safe, but want to be absolutely sure it won't break the script if I don't use the escape character (for readability reasons) at places where I will be working only with right square bracket ]

This "special command" is a Regular Expression character class also called a character set. This article looks like a good intro. Or see the man page for grep on your system.
– PM 2RingNov 16 '14 at 11:04