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.
```
s="Download"
re.findall("^[A-Z][a-z]*$",s)
['Download']
s="DownloaD"
re.findall("^[A-Z][a-z]*$",s)
[]
s="download"
re.findall("^[A-Z][a-z]*$",s)
[]

```

If I understand your question correctly, you want to match a string with the First Cap followed by small case. In such a scenario, the above should work.