var upcRE = RegExp(String("_"*9, "+#_#", lhd.keys.concat("|","(",")")*6, "_#_#_", rhd.keys.concat("|","(",")")*6, "#_#", "_"*9)), digits=lhd.copy().extend(rhd); fcn parseBarCode2(barcode){ // --> 12 digits if(not (upcRE.search(barcode) or upcRE.search(barcode.reverse()))) return(False); upcRE.matched[1,*] // ( (a,b), "_#_####","_##___#", 10 more digit patterns ) .apply(digits.get) }