Unhide objects with UI?
Feel free to try/modify this

bl_info = {
    "name": "Blank1",
    "author": "Your Name Here",
    "version": (1, 0),
    "blender": (2, 79, 0),
    "location": "View3D &gt; Tools panel 'T' &gt; Blank1 &gt; Blank2",
    "description": "",
    "warning": "",
    "wiki_url": "",
    "category": "",
    }

import bpy
import os
from bpy.types import Operator
from bpy.types import Panel

def unhide_objects(scene):
    """Unhide all objects"""
    for ob in scene.objects:
        ob.hide = False

def ToggleHide(self, context):
    scene = self
    unhide_objects(scene)
    if scene.TestStringProp:
        for ob in scene.objects:
            if ob.name.startswith(str(scene.TestStringProp)):
                ob.hide = True
            else:
                ob.hide = False
    if not scene.TestBool:
        unhide_objects(scene)

def initprop():
    bpy.types.Scene.TestBool = bpy.props.BoolProperty(
        name="TestBool", 
        description="", 
        default=False, 
        subtype='NONE', 
        update=ToggleHide)

    bpy.types.Scene.TestStringProp = bpy.props.StringProperty(
        name="TestStringProp", 
        description="", 
        default="", 
        subtype='NONE')

def delprop():
    del bpy.types.Scene.TestBool
    del bpy.types.Scene.TestStringProp

class VIEW3D_PT_Blank1_Blank2(Panel):
    bl_space_type = 'VIEW_3D'
    bl_region_type = 'TOOLS'
    bl_category = "Blank1"
    bl_context = "objectmode"
    bl_label = "Blank2"

    def draw(self, context):
        scene = context.scene
        layout = self.layout
        row = layout.row()
        col = layout.column(align=True)
        col.label(text="Columns")
        col.prop(scene, "TestBool")
        col.prop(scene, "TestStringProp")

def register():
    bpy.utils.register_class(VIEW3D_PT_Blank1_Blank2)
    initprop()

def unregister():
    bpy.utils.unregister_class(VIEW3D_PT_Blank1_Blank2)
    delprop()

if __name__ == "__main__":
    register()