An interesting problem I ran into recently:
I have a shell script that I run about once a month that
"screen-scrapes" from the output of another program using the
substring capability, e.g. ${data_line:12:2}. This is pulling
out the two-digit month ranging from "01" to "12".
This worked fine, even giving the right answers, for
months earlier in the year. Then came August, and it went
sideways because the leading "0" was forcing the number to be
interpreted as octal. My first reaction was, What's going on,
this has run just fine for months. The second reaction was,
WTF, who uses octal anymore? But I understand it is because
of C-language compatibility. I could use the [base#]n form
but that gets awkward.