anchor.diff:  					= VarMatch, _ = '_'}]},
   					[{'=<', Prefix, VarMatch}, {'>', Prefix2, VarMatch}]}];
   		_ when Op == exact ->
  +			VarMatch1 = build_var_match(N),
  +			VarMatch2 = build_var_match(N + 1),
  +			VarMatch3 = build_var_match(N + 2),
  +			VarMatch4 = build_var_match(N + 3),
   			Prefix = list_to_binary(UserNameValue),
   			SubscriptionMC = {'or', {'and', {'=:=', VarMatch1,
   					?'3GPP_RO_SUBSCRIPTION-ID-TYPE_END_USER_IMSI'}, {'==', VarMatch2, Prefix}},
  
positive.code: 			ReqAttrs2 = [{#'3gpp_ro_CCR'{'Subscription-Id'
  					= [#'3gpp_ro_Subscription-Id'{'Subscription-Id-Data'
  					= VarMatch, _ = '_'}], _ = '_'},
  					[{'=<', Prefix, VarMatch}, {'>', Prefix2, VarMatch}]}];
  		_ when Op == exact ->
  			Prefix = list_to_binary(UserNameValue),
  			SubscriptionMC = {'or', {'and', {'=:=', VarMatch1,
  					?'3GPP_RO_SUBSCRIPTION-ID-TYPE_END_USER_E164'}, {'==', VarMatch2, Prefix}},
  
negative.code: 					= [#'3gpp_ro_Subscription-Id'{'Subscription-Id-Type'
  					= VarMatch1, 'Subscription-Id-Data' = VarMatch2, _ = '_'},
  					#'3gpp_ro_Subscription-Id'{'Subscription-Id-Type' = VarMatch3,
  					'Subscription-Id-Data' = VarMatch4, _ = '_'}]}, [NewMC]}],
  			characteristic(T, diameter, Types, ReqAttrs2, RespAttrs, N + 4)
  	end;
  characteristic({"name", exact, "imsi"}, {"value", Op, UserNameValue},
  		T, diameter, Types, [{CCR, MC}], RespAttrs, N) when is_list(UserNameValue) ->
  	case lists:last(UserNameValue) of
  		$% when Op == gte ->
  			VarMatch = build_var_match(N),
  			Pre = lists:droplast(UserNameValue),
  			Prefix = list_to_binary(Pre),
  			I = list_to_integer(Pre),
  