I am trying to match all characters of given string but those characters should match in the order as given to the bash script.
while [[ $# -gt 0 ]]; do case $
Your regex is matching 'a' or 'e' or 'i' because they are in a character set ([]). I think the regular expression you are looking for is
[]
a+.*e+.*i+.*
which matches 'a' one or more times, then anything, then 'e' one or more times, then anything, then 'i' one or more times.