Segregate alpha and digits

I have a variable containing values like 10d2, 7a7, a8 or d6 (i.e. <digits><alpha><digits>. Out of these leading digits may not be there. Out of this, I want three variables. The first having value Inital digits, the second one will be alpha and the third will be trailing digits. (In the previous example var1 will be 10, var2 will be d and var3 will be 2. In case of a8, var1 will be null, var2 will be a and var3 will be 9)

Any help using sed/awk?

You don't need sed or awk for this, just use a standards conforming shell (such as bash or ksh):
With the following script saved in a file (tester):

#!/bin/ksh
for i in "$@"
do      var1=${i%%[[:alpha:]]*}
        var3=${i##*[[:alpha:]]}
        var2=${i%$var3}
        var2=${var2#$var1}
        echo "$i -> :$var1:$var2:$var3:"
done

made executable:

chmod +x tester

and invoked as:

./tester 123abc456 xyz789 135mno  MIDDLE

the output produced is:

123abc456 -> :123:abc:456:
xyz789 -> ::xyz:789:
135mno -> :135:mno::
MIDDLE -> ::MIDDLE::

Thanks for the help.

Lesson learnt: First look for a straightforward solution.