How to compare a file name with a regular expression !!

Hi,

I need to compare file names in a folder with several strings(which are in regular expression format):

For example:
there is a file "objectMyHistoryBook" and there are several strings to compare this file name with:

objectMyMaths*, objectMyEnglish*, objectMyHistory*, objectMyChemistry* etc

so I tried this:
file=objectMyHistoryBook
#there are several files in the concerned folder so assigning each name in 'file'
if [ [ $file="objectMyMaths*"] -o [ $file="objectMyEnglish*" ] -o [ $file="objectMyHistory*"] -o [ $file="objectMyChemistry] ];
then
{file name matches one of the string so do this }
fi

But this is not working. Need help..!!

Put all the strings in one file ( pattern.txt )

 
$cat pattern.txt
objectMyMaths
objectMyEnglish
objectMyHistory
objectMyChemistry
 
$while read pattern
do
   ls -lrt $pattern* > /dev/null && echo "File found for $pattern" || echo "file not found for this $pattern"
done < pattern.txt

Depending on your shell you could try one of these:

if [[ "$file" = objectMyMaths* ]] ||
   [[ "$file" = objectMyEnglish* ]] ||
   [[ "$file" = objectMyHistory* ]] ||
   [[ "$file" = objectMyChemistry* ]]
then
 echo {file name matches one of the string so do this }
fi
case "$file" in
    objectMyMaths*|objectMyEnglish*|objectMyHistory*|objectMyChemistry*)
        echo {file name matches one of the string so do this }
    ;;
    *)
        echo "No match"
    ;;
esac