code: def name_and_number(name: str) -> tuple[str, Optional[int]]:
      splits = re.split(r"_(0|[1-9]\d*)$", name, 3)
      if len(splits) > 1:
          return splits[0], int(splits[1])
      else:
          return name, None
  
imports: from collections.abc import Mapping
  import contextlib
  import functools
  import inspect
  import re
  from typing import Any, Callable, ContextManager, NamedTuple, Optional, Protocol, TypeVar
  from haiku._src import base
  from haiku._src import config
  from haiku._src import data_structures
  from haiku._src import utils
  import jax
  import jax.numpy
label_desc: Use image node_id 7 for calling a global function with example usage: name_and_number(name) and returns: splits,  int, name,  None