# File lib/asciidoctor/renderer.rb, line 167
  def self.camelcase_to_underscore(str)
    str.gsub(/([[:upper:]]+)([[:upper:]][[:alpha:]])/, '\1_\2').
        gsub(/([[:lower:]])([[:upper:]])/, '\1_\2').downcase
  end