Nouf,
Since your post did not mention other non-numeric characters besides "A", I didn't solve for characters for which I was not aware. Of course, you should add to the TRANSLATE character list any characters that are non-numeric so that you do not receive the "ORA-01722: invalid number" error. I have modified both statements to handle all characters of which I am aware: "_" plus all alphabetic characters, both upper and lower case:
1) select b_no from tab order by to_number(translate(upper(b_no),'^_ABCDEFGHIJKLMNOPQRSTUVWXYZ','^'));
2) select max(to_number(translate(upper(b_no),'^_ABCDEFGHIJKLMNOPQRSTUVWXYZ','^')))+1 from tab;
Let me know if this solves your need.
Dave
Sandy, Utah, USA @ 18:19 GMT, 11:19 Mountain Time