Question: A bit confused trying to do a string match that accepts this:

Lets say a string S = "Download" Here, S can be "Download" or "DOWNLOAD" or "DoWNload". Thus, any character in the string can be an uppercase or a lowercase. Its rather easy to write a regex match for all upper case or all lower case letters or even a mix of letters, but I found it difficult to write a regex match that follows a particular order, which here is "Download". 

I hope I was lucid here.

Answer: 
To check if `"download"` appears in a string regardless of case, you don't even need a regular expression.

```
"download" in s.lower()

```

will also work fine.
What's wrong with: `S == "Download"` ?

Your question isn't clear about whether you want to ignore case or not.

`"I found it difficult to write a regex match that follows a particular order"`

A particular order of capitalisation or just a particular order of letters?

If you want to ignore case, just convert to lower-case before comparing:

```
S.lower() == "download"

```