qn 681 ext/mbstring/oniguruma/regcomp.c compile_range_repeat_node(QtfrNode* qn, int target_len, int empty_info, qn 687 ext/mbstring/oniguruma/regcomp.c r = add_opcode(reg, qn->greedy ? OP_REPEAT : OP_REPEAT_NG); qn 695 ext/mbstring/oniguruma/regcomp.c r = entry_repeat_range(reg, num_repeat, qn->lower, qn->upper); qn 698 ext/mbstring/oniguruma/regcomp.c r = compile_tree_empty_check(qn->target, reg, empty_info); qn 705 ext/mbstring/oniguruma/regcomp.c IS_QUANTIFIER_IN_REPEAT(qn)) { qn 706 ext/mbstring/oniguruma/regcomp.c r = add_opcode(reg, qn->greedy ? OP_REPEAT_INC_SG : OP_REPEAT_INC_NG_SG); qn 709 ext/mbstring/oniguruma/regcomp.c r = add_opcode(reg, qn->greedy ? OP_REPEAT_INC : OP_REPEAT_INC_NG); qn 717 ext/mbstring/oniguruma/regcomp.c is_anychar_star_quantifier(QtfrNode* qn) qn 719 ext/mbstring/oniguruma/regcomp.c if (qn->greedy && IS_REPEAT_INFINITE(qn->upper) && qn 720 ext/mbstring/oniguruma/regcomp.c NTYPE(qn->target) == NT_CANY) qn 732 ext/mbstring/oniguruma/regcomp.c compile_length_quantifier_node(QtfrNode* qn, regex_t* reg) qn 736 ext/mbstring/oniguruma/regcomp.c int infinite = IS_REPEAT_INFINITE(qn->upper); qn 737 ext/mbstring/oniguruma/regcomp.c int empty_info = qn->target_empty_info; qn 738 ext/mbstring/oniguruma/regcomp.c int tlen = compile_length_tree(qn->target, reg); qn 742 ext/mbstring/oniguruma/regcomp.c ckn = ((reg->num_comb_exp_check > 0) ? qn->comb_exp_check_num : 0); qn 747 ext/mbstring/oniguruma/regcomp.c if (NTYPE(qn->target) == NT_CANY) { qn 748 ext/mbstring/oniguruma/regcomp.c if (qn->greedy && infinite) { qn 749 ext/mbstring/oniguruma/regcomp.c if (IS_NOT_NULL(qn->next_head_exact) && !CKN_ON) qn 750 ext/mbstring/oniguruma/regcomp.c return SIZE_OP_ANYCHAR_STAR_PEEK_NEXT + tlen * qn->lower + cklen; qn 752 ext/mbstring/oniguruma/regcomp.c return SIZE_OP_ANYCHAR_STAR + tlen * qn->lower + cklen; qn 761 ext/mbstring/oniguruma/regcomp.c if (infinite && qn->lower <= 1) { qn 762 ext/mbstring/oniguruma/regcomp.c if (qn->greedy) { qn 763 ext/mbstring/oniguruma/regcomp.c if (qn->lower == 1) qn 771 ext/mbstring/oniguruma/regcomp.c if (qn->lower == 0) qn 779 ext/mbstring/oniguruma/regcomp.c else if (qn->upper == 0) { qn 780 ext/mbstring/oniguruma/regcomp.c if (qn->is_refered != 0) /* /(?<n>..){0}/ */ qn 785 ext/mbstring/oniguruma/regcomp.c else if (qn->upper == 1 && qn->greedy) { qn 786 ext/mbstring/oniguruma/regcomp.c if (qn->lower == 0) { qn 798 ext/mbstring/oniguruma/regcomp.c else if (!qn->greedy && qn->upper == 1 && qn->lower == 0) { /* '??' */ qn 812 ext/mbstring/oniguruma/regcomp.c compile_quantifier_node(QtfrNode* qn, regex_t* reg) qn 816 ext/mbstring/oniguruma/regcomp.c int infinite = IS_REPEAT_INFINITE(qn->upper); qn 817 ext/mbstring/oniguruma/regcomp.c int empty_info = qn->target_empty_info; qn 818 ext/mbstring/oniguruma/regcomp.c int tlen = compile_length_tree(qn->target, reg); qn 822 ext/mbstring/oniguruma/regcomp.c ckn = ((reg->num_comb_exp_check > 0) ? qn->comb_exp_check_num : 0); qn 824 ext/mbstring/oniguruma/regcomp.c if (is_anychar_star_quantifier(qn)) { qn 825 ext/mbstring/oniguruma/regcomp.c r = compile_tree_n_times(qn->target, qn->lower, reg); qn 827 ext/mbstring/oniguruma/regcomp.c if (IS_NOT_NULL(qn->next_head_exact) && !CKN_ON) { qn 838 ext/mbstring/oniguruma/regcomp.c return add_bytes(reg, NSTR(qn->next_head_exact)->s, 1); qn 864 ext/mbstring/oniguruma/regcomp.c if (infinite && qn->lower <= 1) { qn 865 ext/mbstring/oniguruma/regcomp.c if (qn->greedy) { qn 866 ext/mbstring/oniguruma/regcomp.c if (qn->lower == 1) { qn 883 ext/mbstring/oniguruma/regcomp.c r = compile_tree_empty_check(qn->target, reg, empty_info); qn 890 ext/mbstring/oniguruma/regcomp.c if (qn->lower == 0) { qn 894 ext/mbstring/oniguruma/regcomp.c r = compile_tree_empty_check(qn->target, reg, empty_info); qn 908 ext/mbstring/oniguruma/regcomp.c else if (qn->upper == 0) { qn 909 ext/mbstring/oniguruma/regcomp.c if (qn->is_refered != 0) { /* /(?<n>..){0}/ */ qn 912 ext/mbstring/oniguruma/regcomp.c r = compile_tree(qn->target, reg); qn 917 ext/mbstring/oniguruma/regcomp.c else if (qn->upper == 1 && qn->greedy) { qn 918 ext/mbstring/oniguruma/regcomp.c if (qn->lower == 0) { qn 932 ext/mbstring/oniguruma/regcomp.c r = compile_tree(qn->target, reg); qn 934 ext/mbstring/oniguruma/regcomp.c else if (!qn->greedy && qn->upper == 1 && qn->lower == 0) { /* '??' */ qn 949 ext/mbstring/oniguruma/regcomp.c r = compile_tree(qn->target, reg); qn 952 ext/mbstring/oniguruma/regcomp.c r = compile_range_repeat_node(qn, mod_tlen, empty_info, reg); qn 966 ext/mbstring/oniguruma/regcomp.c compile_length_quantifier_node(QtfrNode* qn, regex_t* reg) qn 969 ext/mbstring/oniguruma/regcomp.c int infinite = IS_REPEAT_INFINITE(qn->upper); qn 970 ext/mbstring/oniguruma/regcomp.c int empty_info = qn->target_empty_info; qn 971 ext/mbstring/oniguruma/regcomp.c int tlen = compile_length_tree(qn->target, reg); qn 976 ext/mbstring/oniguruma/regcomp.c if (NTYPE(qn->target) == NT_CANY) { qn 977 ext/mbstring/oniguruma/regcomp.c if (qn->greedy && infinite) { qn 978 ext/mbstring/oniguruma/regcomp.c if (IS_NOT_NULL(qn->next_head_exact)) qn 979 ext/mbstring/oniguruma/regcomp.c return SIZE_OP_ANYCHAR_STAR_PEEK_NEXT + tlen * qn->lower; qn 981 ext/mbstring/oniguruma/regcomp.c return SIZE_OP_ANYCHAR_STAR + tlen * qn->lower; qn 991 ext/mbstring/oniguruma/regcomp.c (qn->lower <= 1 || tlen * qn->lower <= QUANTIFIER_EXPAND_LIMIT_SIZE)) { qn 992 ext/mbstring/oniguruma/regcomp.c if (qn->lower == 1 && tlen > QUANTIFIER_EXPAND_LIMIT_SIZE) { qn 996 ext/mbstring/oniguruma/regcomp.c len = tlen * qn->lower; qn 999 ext/mbstring/oniguruma/regcomp.c if (qn->greedy) { qn 1000 ext/mbstring/oniguruma/regcomp.c if (IS_NOT_NULL(qn->head_exact)) qn 1002 ext/mbstring/oniguruma/regcomp.c else if (IS_NOT_NULL(qn->next_head_exact)) qn 1010 ext/mbstring/oniguruma/regcomp.c else if (qn->upper == 0 && qn->is_refered != 0) { /* /(?<n>..){0}/ */ qn 1013 ext/mbstring/oniguruma/regcomp.c else if (!infinite && qn->greedy && qn 1014 ext/mbstring/oniguruma/regcomp.c (qn->upper == 1 || (tlen + SIZE_OP_PUSH) * qn->upper qn 1016 ext/mbstring/oniguruma/regcomp.c len = tlen * qn->lower; qn 1017 ext/mbstring/oniguruma/regcomp.c len += (SIZE_OP_PUSH + tlen) * (qn->upper - qn->lower); qn 1019 ext/mbstring/oniguruma/regcomp.c else if (!qn->greedy && qn->upper == 1 && qn->lower == 0) { /* '??' */ qn 1031 ext/mbstring/oniguruma/regcomp.c compile_quantifier_node(QtfrNode* qn, regex_t* reg) qn 1034 ext/mbstring/oniguruma/regcomp.c int infinite = IS_REPEAT_INFINITE(qn->upper); qn 1035 ext/mbstring/oniguruma/regcomp.c int empty_info = qn->target_empty_info; qn 1036 ext/mbstring/oniguruma/regcomp.c int tlen = compile_length_tree(qn->target, reg); qn 1040 ext/mbstring/oniguruma/regcomp.c if (is_anychar_star_quantifier(qn)) { qn 1041 ext/mbstring/oniguruma/regcomp.c r = compile_tree_n_times(qn->target, qn->lower, reg); qn 1043 ext/mbstring/oniguruma/regcomp.c if (IS_NOT_NULL(qn->next_head_exact)) { qn 1049 ext/mbstring/oniguruma/regcomp.c return add_bytes(reg, NSTR(qn->next_head_exact)->s, 1); qn 1065 ext/mbstring/oniguruma/regcomp.c (qn->lower <= 1 || tlen * qn->lower <= QUANTIFIER_EXPAND_LIMIT_SIZE)) { qn 1066 ext/mbstring/oniguruma/regcomp.c if (qn->lower == 1 && tlen > QUANTIFIER_EXPAND_LIMIT_SIZE) { qn 1067 ext/mbstring/oniguruma/regcomp.c if (qn->greedy) { qn 1068 ext/mbstring/oniguruma/regcomp.c if (IS_NOT_NULL(qn->head_exact)) qn 1070 ext/mbstring/oniguruma/regcomp.c else if (IS_NOT_NULL(qn->next_head_exact)) qn 1081 ext/mbstring/oniguruma/regcomp.c r = compile_tree_n_times(qn->target, qn->lower, reg); qn 1085 ext/mbstring/oniguruma/regcomp.c if (qn->greedy) { qn 1086 ext/mbstring/oniguruma/regcomp.c if (IS_NOT_NULL(qn->head_exact)) { qn 1090 ext/mbstring/oniguruma/regcomp.c add_bytes(reg, NSTR(qn->head_exact)->s, 1); qn 1091 ext/mbstring/oniguruma/regcomp.c r = compile_tree_empty_check(qn->target, reg, empty_info); qn 1096 ext/mbstring/oniguruma/regcomp.c else if (IS_NOT_NULL(qn->next_head_exact)) { qn 1100 ext/mbstring/oniguruma/regcomp.c add_bytes(reg, NSTR(qn->next_head_exact)->s, 1); qn 1101 ext/mbstring/oniguruma/regcomp.c r = compile_tree_empty_check(qn->target, reg, empty_info); qn 1109 ext/mbstring/oniguruma/regcomp.c r = compile_tree_empty_check(qn->target, reg, empty_info); qn 1118 ext/mbstring/oniguruma/regcomp.c r = compile_tree_empty_check(qn->target, reg, empty_info); qn 1123 ext/mbstring/oniguruma/regcomp.c else if (qn->upper == 0 && qn->is_refered != 0) { /* /(?<n>..){0}/ */ qn 1126 ext/mbstring/oniguruma/regcomp.c r = compile_tree(qn->target, reg); qn 1128 ext/mbstring/oniguruma/regcomp.c else if (!infinite && qn->greedy && qn 1129 ext/mbstring/oniguruma/regcomp.c (qn->upper == 1 || (tlen + SIZE_OP_PUSH) * qn->upper qn 1131 ext/mbstring/oniguruma/regcomp.c int n = qn->upper - qn->lower; qn 1133 ext/mbstring/oniguruma/regcomp.c r = compile_tree_n_times(qn->target, qn->lower, reg); qn 1140 ext/mbstring/oniguruma/regcomp.c r = compile_tree(qn->target, reg); qn 1144 ext/mbstring/oniguruma/regcomp.c else if (!qn->greedy && qn->upper == 1 && qn->lower == 0) { /* '??' */ qn 1149 ext/mbstring/oniguruma/regcomp.c r = compile_tree(qn->target, reg); qn 1152 ext/mbstring/oniguruma/regcomp.c r = compile_range_repeat_node(qn, mod_tlen, empty_info, reg); qn 1248 ext/mbstring/oniguruma/regcomp.c QtfrNode* qn = NQTFR(node->target); qn 1249 ext/mbstring/oniguruma/regcomp.c tlen = compile_length_tree(qn->target, reg); qn 1252 ext/mbstring/oniguruma/regcomp.c len = tlen * qn->lower qn 1338 ext/mbstring/oniguruma/regcomp.c QtfrNode* qn = NQTFR(node->target); qn 1339 ext/mbstring/oniguruma/regcomp.c r = compile_tree_n_times(qn->target, qn->lower, reg); qn 1342 ext/mbstring/oniguruma/regcomp.c len = compile_length_tree(qn->target, reg); qn 1347 ext/mbstring/oniguruma/regcomp.c r = compile_tree(qn->target, reg); qn 1984 ext/mbstring/oniguruma/regcomp.c QtfrNode* qn = NQTFR(node); qn 1985 ext/mbstring/oniguruma/regcomp.c if (qn->upper != 0) { qn 1986 ext/mbstring/oniguruma/regcomp.c r = quantifiers_memory_node_info(qn->target); qn 2103 ext/mbstring/oniguruma/regcomp.c QtfrNode* qn = NQTFR(node); qn 2105 ext/mbstring/oniguruma/regcomp.c if (qn->lower > 0) { qn 2106 ext/mbstring/oniguruma/regcomp.c r = get_min_match_length(qn->target, min, env); qn 2108 ext/mbstring/oniguruma/regcomp.c *min = distance_multiply(*min, qn->lower); qn 2216 ext/mbstring/oniguruma/regcomp.c QtfrNode* qn = NQTFR(node); qn 2218 ext/mbstring/oniguruma/regcomp.c if (qn->upper != 0) { qn 2219 ext/mbstring/oniguruma/regcomp.c r = get_max_match_length(qn->target, max, env); qn 2221 ext/mbstring/oniguruma/regcomp.c if (! IS_REPEAT_INFINITE(qn->upper)) qn 2222 ext/mbstring/oniguruma/regcomp.c *max = distance_multiply(*max, qn->upper); qn 2323 ext/mbstring/oniguruma/regcomp.c QtfrNode* qn = NQTFR(node); qn 2324 ext/mbstring/oniguruma/regcomp.c if (qn->lower == qn->upper) { qn 2325 ext/mbstring/oniguruma/regcomp.c r = get_char_length_tree1(qn->target, reg, &tlen, level); qn 2327 ext/mbstring/oniguruma/regcomp.c *len = distance_multiply(tlen, qn->lower); qn 2615 ext/mbstring/oniguruma/regcomp.c QtfrNode* qn = NQTFR(node); qn 2616 ext/mbstring/oniguruma/regcomp.c if (qn->lower > 0) { qn 2617 ext/mbstring/oniguruma/regcomp.c if (IS_NOT_NULL(qn->head_exact)) qn 2618 ext/mbstring/oniguruma/regcomp.c n = qn->head_exact; qn 2620 ext/mbstring/oniguruma/regcomp.c n = get_head_value_node(qn->target, exact, reg); qn 3149 ext/mbstring/oniguruma/regcomp.c QtfrNode* qn = NQTFR(node); qn 3150 ext/mbstring/oniguruma/regcomp.c if (qn->greedy && IS_REPEAT_INFINITE(qn->upper)) { qn 3155 ext/mbstring/oniguruma/regcomp.c qn->next_head_exact = n; qn 3159 ext/mbstring/oniguruma/regcomp.c if (qn->lower <= 1) { qn 3160 ext/mbstring/oniguruma/regcomp.c int ttype = NTYPE(qn->target); qn 3163 ext/mbstring/oniguruma/regcomp.c x = get_head_value_node(qn->target, 0, reg); qn 3542 ext/mbstring/oniguruma/regcomp.c QtfrNode* qn = NQTFR(node); qn 3543 ext/mbstring/oniguruma/regcomp.c Node* target = qn->target; qn 3546 ext/mbstring/oniguruma/regcomp.c if (! IS_REPEAT_INFINITE(qn->upper)) { qn 3547 ext/mbstring/oniguruma/regcomp.c if (qn->upper > 1) { qn 3553 ext/mbstring/oniguruma/regcomp.c if (NTYPE(qn->target) == NT_ENCLOSE) { qn 3554 ext/mbstring/oniguruma/regcomp.c EncloseNode* en = NENCLOSE(qn->target); qn 3559 ext/mbstring/oniguruma/regcomp.c && q->greedy == qn->greedy) { qn 3560 ext/mbstring/oniguruma/regcomp.c qn->upper = (qn->lower == 0 ? 1 : qn->lower); qn 3561 ext/mbstring/oniguruma/regcomp.c if (qn->upper == 1) qn 3572 ext/mbstring/oniguruma/regcomp.c qn->comb_exp_check_num = -1; qn 3575 ext/mbstring/oniguruma/regcomp.c if (IS_REPEAT_INFINITE(qn->upper)) { qn 3580 ext/mbstring/oniguruma/regcomp.c var_num = qn->upper - qn->lower; qn 3589 ext/mbstring/oniguruma/regcomp.c if (qn->comb_exp_check_num == 0) { qn 3591 ext/mbstring/oniguruma/regcomp.c qn->comb_exp_check_num = env->num_comb_exp_check; qn 3723 ext/mbstring/oniguruma/regcomp.c QtfrNode* qn = NQTFR(node); qn 3724 ext/mbstring/oniguruma/regcomp.c Node* target = qn->target; qn 3727 ext/mbstring/oniguruma/regcomp.c qn->state |= NST_IN_REPEAT; qn 3730 ext/mbstring/oniguruma/regcomp.c if (IS_REPEAT_INFINITE(qn->upper) || qn->upper >= 1) { qn 3734 ext/mbstring/oniguruma/regcomp.c qn->target_empty_info = NQ_TARGET_IS_EMPTY; qn 3739 ext/mbstring/oniguruma/regcomp.c qn->target_empty_info = r; qn 3746 ext/mbstring/oniguruma/regcomp.c qn->upper = 1; qn 3747 ext/mbstring/oniguruma/regcomp.c if (qn->lower > 1) qn->lower = 1; qn 3749 ext/mbstring/oniguruma/regcomp.c qn->upper = qn->lower = 0; /* /(?:)+/ ==> // */ qn 3757 ext/mbstring/oniguruma/regcomp.c if (qn->lower != qn->upper) qn 3765 ext/mbstring/oniguruma/regcomp.c if (!IS_REPEAT_INFINITE(qn->lower) && qn->lower == qn->upper && qn 3766 ext/mbstring/oniguruma/regcomp.c qn->lower > 1 && qn->lower <= EXPAND_STRING_MAX_LENGTH) { qn 3770 ext/mbstring/oniguruma/regcomp.c if (len * qn->lower <= EXPAND_STRING_MAX_LENGTH) { qn 3771 ext/mbstring/oniguruma/regcomp.c int i, n = qn->lower; qn 3784 ext/mbstring/oniguruma/regcomp.c if (qn->greedy && (qn->target_empty_info != 0)) { qn 3788 ext/mbstring/oniguruma/regcomp.c qn->head_exact = tqn->head_exact; qn 3793 ext/mbstring/oniguruma/regcomp.c qn->head_exact = get_head_value_node(qn->target, 1, reg); qn 4775 ext/mbstring/oniguruma/regcomp.c QtfrNode* qn = NQTFR(node); qn 4777 ext/mbstring/oniguruma/regcomp.c r = optimize_node_left(qn->target, &nopt, env); qn 4780 ext/mbstring/oniguruma/regcomp.c if (qn->lower == 0 && IS_REPEAT_INFINITE(qn->upper)) { qn 4782 ext/mbstring/oniguruma/regcomp.c NTYPE(qn->target) == NT_CANY && qn->greedy) { qn 4790 ext/mbstring/oniguruma/regcomp.c if (qn->lower > 0) { qn 4794 ext/mbstring/oniguruma/regcomp.c for (i = 2; i <= qn->lower && qn 4798 ext/mbstring/oniguruma/regcomp.c if (i < qn->lower) { qn 4804 ext/mbstring/oniguruma/regcomp.c if (qn->lower != qn->upper) { qn 4808 ext/mbstring/oniguruma/regcomp.c if (qn->lower > 1) qn 4813 ext/mbstring/oniguruma/regcomp.c min = distance_multiply(nopt.len.min, qn->lower); qn 4814 ext/mbstring/oniguruma/regcomp.c if (IS_REPEAT_INFINITE(qn->upper)) qn 4817 ext/mbstring/oniguruma/regcomp.c max = distance_multiply(nopt.len.max, qn->upper); qn 4759 ext/mbstring/oniguruma/regparse.c QtfrNode* qn; qn 4761 ext/mbstring/oniguruma/regparse.c qn = NQTFR(qnode); qn 4762 ext/mbstring/oniguruma/regparse.c if (qn->lower == 1 && qn->upper == 1) { qn 4773 ext/mbstring/oniguruma/regparse.c qn->target = n; qn 4784 ext/mbstring/oniguruma/regparse.c int nestq_num = popular_quantifier_num(qn); qn 4788 ext/mbstring/oniguruma/regparse.c if (!IS_QUANTIFIER_BY_NUMBER(qn) && !IS_QUANTIFIER_BY_NUMBER(qnt) && qn 4829 ext/mbstring/oniguruma/regparse.c if (! IS_REPEAT_INFINITE(qn->upper) && qn->upper > 1 && qn->greedy) { qn 4830 ext/mbstring/oniguruma/regparse.c qn->upper = (qn->lower == 0 ? 1 : qn->lower); qn 4841 ext/mbstring/oniguruma/regparse.c qn->target = target; qn 5041 ext/mbstring/oniguruma/regparse.c Node* qn; qn 5308 ext/mbstring/oniguruma/regparse.c qn = node_new_quantifier(0, REPEAT_INFINITE, 0); qn 5309 ext/mbstring/oniguruma/regparse.c CHECK_NULL_RETURN_MEMERR(qn); qn 5310 ext/mbstring/oniguruma/regparse.c NQTFR(qn)->target = *np; qn 5311 ext/mbstring/oniguruma/regparse.c *np = qn; qn 5378 ext/mbstring/oniguruma/regparse.c qn = node_new_quantifier(tok->u.repeat.lower, tok->u.repeat.upper, qn 5380 ext/mbstring/oniguruma/regparse.c CHECK_NULL_RETURN_MEMERR(qn); qn 5381 ext/mbstring/oniguruma/regparse.c NQTFR(qn)->greedy = tok->u.repeat.greedy; qn 5382 ext/mbstring/oniguruma/regparse.c r = set_quantifier(qn, *targetp, group, env); qn 5384 ext/mbstring/oniguruma/regparse.c onig_node_free(qn); qn 5392 ext/mbstring/oniguruma/regparse.c onig_node_free(qn); qn 5395 ext/mbstring/oniguruma/regparse.c NENCLOSE(en)->target = qn; qn 5396 ext/mbstring/oniguruma/regparse.c qn = en; qn 5400 ext/mbstring/oniguruma/regparse.c *targetp = qn; qn 5403 ext/mbstring/oniguruma/regparse.c onig_node_free(qn); qn 5410 ext/mbstring/oniguruma/regparse.c onig_node_free(qn); qn 5413 ext/mbstring/oniguruma/regparse.c tmp = NCDR(*targetp) = node_new_list(qn, NULL); qn 5415 ext/mbstring/oniguruma/regparse.c onig_node_free(qn); qn 155 ext/mbstring/oniguruma/regparse.h #define IS_QUANTIFIER_IN_REPEAT(qn) (((qn)->state & NST_IN_REPEAT) != 0) qn 156 ext/mbstring/oniguruma/regparse.h #define IS_QUANTIFIER_BY_NUMBER(qn) (((qn)->state & NST_BY_NUMBER) != 0)