Finding capitalized characters and printing their position & ASCII value
Nits

Check out map:

(def string-to-ascii (str)
  (map 'list 'char-code str))


Note that &lt; takes &amp;rest so you can write (&lt; 65 i 90) instead of (and (&gt; i 65) (&lt; i 90)) (you also want &lt;= instead).

Furthermore, return-capital-positon is quadratic in length of the input string - it can be made linear instead.

do- is a usually used as a prefix for iteration macros.
Also, you call string-to-ascii in do-hash twice; you can use let to remove one call.

Your line breaks in hash-table-alist are very confusing.

You can use delete instead of remove in is-capitalized because hash-table-alist returns a fresh list.

Summary

I think your code is overkill.

(defun is-capitalized (str)
  (loop for char across str for code = (char-code char) for pos upfrom 0
     when (&lt;= 65 code 90)
     collect (cons pos code)))


This has the added benefit that the return value increases in pos (i.e., it returns the reverse of your function).

Alternatively, you can actually avoid constants:

(defun is-capitalized (str)
  (loop for char across str for pos upfrom 0
    when (char= char (char-upcase char))
    collect (cons pos (char-code char))))