変数中の %%:* と ##.* の意味を教えてください

# cat test.sh

TEST1=45:0:0:0
TEST2=aaa.bbb.ccc
echo "TEST1%%:* = ${TEST1%%:*}"
echo "TEST2##.* = ${TEST2##*.}"

# sh test.sh

TEST1%%:* = 45
TEST2##.* = ccc

どうしてこうなるのかが、わからないんです orz
キーワードが悪いのか、ググっても解決できない・・・