You can make the RewriteRule case-insensitive using the [NC] flag, and you probably should add an [L] flag. Since there is no start anchor, ".*" at the beginning of the pattern is no needed. Redirecting transparently (omitting the [R] flag) prevents them from easily figuring out what happened.
The pattern "http://(www\.)?MyWebSite\.com/" will match your site's domain, with or without "www." No trailing anchor or ".*" is needed. The pattern "jpe?g?" will match jpeg, jpe, and jpg if you want to cover 'em all.
I would suggest handling your cgi and pl filetype blocks separately from the images. It will make no sense to a browser for a script request to be redirected to a .gif image file. Actually, I suggest creating a "dummy" file for each image type, and then using a rule like this:
RewriteRule .*\.(gifŠjpe?g?)$ /no.$1 [NC,L]
anything.gif gets redirected to no.gif anything.jpg gets redirected to no.jpg anything.jpe gets redirected to no.jpe anything.jpeg gets redirected to no.jpeg
Alternately, you can just block them all and return 403-Forbidden
RewriteRule .*\.(gifŠjpe?g?ŠcgiŠpl)$ - [NC,F]
Summing up, with all the bells and whistles, you'd have: