# File lib/Getopt/DelimScanner.rb, line 538
    def scanCodeblock( innerDelim=CodeblockDelimiters, prefix='\s*', outerDelim=innerDelim )
        self.matchError = nil
        result          = nil
        startPos        = self.pointer

        prefix          ||= '\s*'
        innerDelim      ||= CodeblockDelimiters
        outerDelim      ||= innerDelim

        depth = caller(1).find_all {|frame|
            frame =~ /in `scan(Variable|Tagged|Codeblock|Bracketed|Quotelike)'/
        }.length

        begin
            debugMsg 3, "------------------------------------"
            debugMsg 3, "Calling matchCodeBlock( %s, %s, %s )",
                prefix.inspect, innerDelim.inspect, outerDelim.inspect
            debugMsg 3, "------------------------------------"
            result = matchCodeblock( prefix, innerDelim, outerDelim )
        rescue MatchFailure => e
            debugMsg( depth + 1, "Match error: %s" % e.message )
            self.matchError = e.message
            self.pointer = startPos
            result = nil
        rescue => e
            self.pointer = startPos
            Kernel::raise
        end

        return result
    end