class Regexp::Expression::CharacterSet

def expand_members(use_properties = false)

expanded to either traditional form or unicode properties.
Returns an array of the members with any shorthand members like \d and \W
def expand_members(use_properties = false)
  @members.map do |member|
    case member
    when "\\d"
      use_properties ? '\p{Digit}'  : '0-9'
    when "\\D"
      use_properties ? '\P{Digit}'  : '^0-9'
    when "\\w"
      use_properties ? '\p{Word}'   : 'A-Za-z0-9_'
    when "\\W"
      use_properties ? '\P{Word}'   : '^A-Za-z0-9_'
    when "\\s"
      use_properties ? '\p{Space}'  : ' \t\f\v\n\r'
    when "\\S"
      use_properties ? '\P{Space}'  : '^ \t\f\v\n\r'
    when "\\h"
      use_properties ? '\p{Xdigit}' : '0-9A-Fa-f'
    when "\\H"
      use_properties ? '\P{Xdigit}' : '^0-9A-Fa-f'
    else
      member
    end
  end
end