    # File lib/rbot/irc.rb, line 618
        def initialize(str="", opts={})
          # First of all, check for server/casemap option
          #
          init_server_or_casemap(opts)

          # Now we can see if the given string _str_ is an actual Netmask
          if str.respond_to?(:to_str)
            case str.to_str
              # We match a pretty generic string, to work around non-compliant
              # servers
            when /^(?:(\S+?)(?:(?:!(\S+?))?@(\S+))?)?$/
              # We do assignment using our internal methods
              self.nick = $1
              self.user = $2
              self.host = $3
            else
              raise ArgumentError, "#{str.to_str.inspect} does not represent a valid #{self.class}"
            end
          else
            raise TypeError, "#{str} cannot be converted to a #{self.class}"
          end
        end