This should do the trick:
^(?=^.{4,15}$)([a-zA-Z]+[0-9][a-zA-Z0-9]*|[0-9]+[a-zA-Z][a-zA-Z0-9]*)$
See working example here: http://regexr.com?351ia
Explanation: (Updated: now with length check)
First the positive lookahead (?=^.{4,15}$) checks the length of your string.
If your string starts with a letter this part of the regex is used to evaluate it:
[a-zA-Z]+[0-9][a-zA-Z0-9]*
[a-zA-Z]+ means that the string starts with at least one letter
[0-9] then at some point there must be a number
[a-zA-Z0-9]* followed by any amount of numbers or letters
If your string starts with a number the second part of the regex is used:
[0-9]+[a-zA-Z][a-zA-Z0-9]*
Same as the above, only this time there must be a letter somewhere in the string.