Band gap engineering of carbon nanotubes via regular addition patterns of covalent functional groups