# File lib/math_ml/util.rb, line 293
                def unencode(encoded, data, without_escape=false, &proc)
                        return nil if encoded==nil
                        proc = @unencode_proc unless proc
                        encoded.gsub(/#{Regexp.escape(@params[:delimiter])}([demu])(\d+)#{Regexp.escape(@params[:delimiter])}/) do
                                i = $2.to_i
                                t, s =
                                        case $1
                                        when "d"
                                                [:dmath, data.dsrc_list[i]]
                                        when "e"
                                                [:escape, data.esrc_list[i]]
                                        when "m"
                                                [:math, data.msrc_list[i]]
                                        when "u"
                                                [:user, data.usrc_list[i]]
                                        end
                                s = escapeXML(s, true) unless without_escape
                                if proc
                                        proc.call(s, :type=>t, :index=>i) || s
                                else
                                        s
                                end
                        end
                end