class HTML::Selector

def attribute_match(equality, value)

on the equality operator (=, ^=, |=, etc).
Create a regular expression to match an attribute value based
def attribute_match(equality, value)
  regexp = value.is_a?(Regexp) ? value : Regexp.escape(value.to_s)
  case equality
    when "=" then
      # Match the attribute value in full
      Regexp.new("^#{regexp}$")
    when "~=" then
      # Match a space-separated word within the attribute value
      Regexp.new("(^|\s)#{regexp}($|\s)")
    when "^="
      # Match the beginning of the attribute value
      Regexp.new("^#{regexp}")
    when "$="
      # Match the end of the attribute value
      Regexp.new("#{regexp}$")
    when "*="
      # Match substring of the attribute value
      regexp.is_a?(Regexp) ? regexp : Regexp.new(regexp)
    when "|=" then
      # Match the first space-separated item of the attribute value
      Regexp.new("^#{regexp}($|\s)")
    else
      raise InvalidSelectorError, "Invalid operation/value" unless value.empty?
      # Match all attributes values (existence check)
      //
  end
end