code: def andition(s):
      pat = re.compile(
          r"<num>(\d+)( | and )<num>(\d+)(?=[^\w]|$)",
          flags=re.IGNORECASE,
      )
      while True:
          matches = list(re.finditer(pat, s))
  
          # If there are no matches found, break out of the loop
          if len(matches) == 0:
              break
  
          substitutions = 0
          # Iterate through matches in reverse order
          for match in reversed(matches):
              # Check if the numbers should be unified
              if (match.group(2) == "and") or (
                  len(match.group(1)) > len(match.group(3))
              ):
                  # Replace the matched part with the unified number
                  s = (
                      s[: match.start()]
                      + "<num>"
                      + str(int(match.group(1)) + int(match.group(3)))
                      + s[match.end() :]
                  )
                  substitutions += 1
  
          # If there were no substitutions, break out of the loop
          if not substitutions:
              break
      return s
  
imports: import re
  from .None import consts
label_desc: Use image node_id 15 for calling a global function with example usage: andition(s) and returns: s