def edition():
 rebulk = Rebulk().regex_defaults(flags=re.IGNORECASE, abbreviations=[dash]).string_defaults(ignore_case=True)
 rebulk.defaults(name='edition', validator=seps_surround)
 rebulk.regex('collector', 'collector-edition', 'edition-collector', value='Collector Edition')
 rebulk.regex('special-edition', 'edition-special', value='Special Edition', conflict_solver=(lambda match, other: (other if ((other.name == 'episode_details') and (other.value == 'Special')) else '__default__')))
 rebulk.regex('criterion-edition', 'edition-criterion', value='Criterion Edition')
 rebulk.regex('deluxe', 'deluxe-edition', 'edition-deluxe', value='Deluxe Edition')
 rebulk.regex("director'?s?-cut", "director'?s?-cut-edition", "edition-director'?s?-cut", value="Director's cut")
 return rebulk

def edition ( ) : rebulk = Rebulk ( ) . regex_defaults ( flags = re . IGNORECASE , abbreviations = [ dash ] ) . string_defaults ( ignore_case = True ) rebulk . defaults ( name = 'edition' , validator = seps_surround ) rebulk . regex ( 'collector' , 'collector-edition' , 'edition-collector' , value = 'Collector Edition' ) rebulk . regex ( 'special-edition' , 'edition-special' , value = 'Special Edition' , conflict_solver = ( lambda match , other : ( other if ( ( other . name == 'episode_details' ) and ( other . value == 'Special' ) ) else '__default__' ) ) ) rebulk . regex ( 'criterion-edition' , 'edition-criterion' , value = 'Criterion Edition' ) rebulk . regex ( 'deluxe' , 'deluxe-edition' , 'edition-deluxe' , value = 'Deluxe Edition' ) rebulk . regex ( "director'?s?-cut" , "director'?s?-cut-edition" , "edition-director'?s?-cut" , value = "Director's cut" ) return rebulk
builder for rebulk object .